qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v7 11/35] util: introduce qemu_file_getlength()


From: Xiao Guangrong
Subject: Re: [Qemu-devel] [PATCH v7 11/35] util: introduce qemu_file_getlength()
Date: Wed, 4 Nov 2015 22:44:52 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0



On 11/04/2015 10:44 PM, Eduardo Habkost wrote:
On Wed, Nov 04, 2015 at 11:17:09AM +0800, Xiao Guangrong wrote:


On 11/04/2015 07:21 AM, Eduardo Habkost wrote:
On Mon, Nov 02, 2015 at 05:13:13PM +0800, Xiao Guangrong wrote:
[...]
+size_t qemu_file_getlength(const char *file, Error **errp)
+{
+    int64_t size;
[...]
+    return size;

Can you guarantee that SIZE_MAX >= INT64_MAX on all platforms supported
by QEMU?


Actually, this function is abstracted from the common function, raw_getlength(),
in raw-posix.c whose return value is int64_t.

And i think int64_t is large enough for block devices.

int64_t should be enough, but I don't know if size_t is large enough on
all platforms.

I believe it's going to be either one of those cases:

* If you are absolutely sure SIZE_MAX >= INT64_MAX on all platforms,
   please explain why (and maybe add a QEMU_BUILD_BUG_ON?). (I don't
   think this will be the case)
* If SIZE_MAX < INT64_MAX is possible but you believe
   size <= SIZE_MAX is always true here, please explain why (and maybe
   add an assert()).
* Otherwise, we need to set an appropriate error if size > SIZE_MAX
   or change the type of qemu_file_getlength(). What about making it
   uint64_t?


It sounds better, I will change the return value from size_t to uint64_t.

Thank you for pointing it out, Eduardo!






reply via email to

[Prev in Thread] Current Thread [Next in Thread]