From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=47567 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PaThB-0001G2-TG for qemu-devel@nongnu.org; Wed, 05 Jan 2011 08:46:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PaThA-0002o6-OC for qemu-devel@nongnu.org; Wed, 05 Jan 2011 08:46:33 -0500 Received: from mail-iw0-f173.google.com ([209.85.214.173]:52837) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PaThA-0002ns-Kp for qemu-devel@nongnu.org; Wed, 05 Jan 2011 08:46:32 -0500 Received: by iwn40 with SMTP id 40so16735411iwn.4 for ; Wed, 05 Jan 2011 05:46:31 -0800 (PST) Message-ID: <4D247633.80304@codemonkey.ws> Date: Wed, 05 Jan 2011 07:46:27 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1294224062-18745-1-git-send-email-Jes.Sorensen@redhat.com> In-Reply-To: <1294224062-18745-1-git-send-email-Jes.Sorensen@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH] Make strtosz() return int64_t instead of ssize_t List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jes.Sorensen@redhat.com Cc: agraf@suse.de, qemu-devel@nongnu.org, armbru@redhat.com On 01/05/2011 04:41 AM, Jes.Sorensen@redhat.com wrote: > From: Jes Sorensen > > strtosz() needs to return a 64 bit type even on 32 bit > architectures. Otherwise qemu-img will fail to create disk > images>= 2GB > > Signed-off-by: Jes Sorensen > off_t would be the proper type to use. Regards, Anthony Liguori > --- > cutils.c | 8 ++++---- > monitor.c | 2 +- > qemu-common.h | 4 ++-- > qemu-img.c | 2 +- > vl.c | 4 ++-- > 5 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/cutils.c b/cutils.c > index 7984bc1..4d2e27c 100644 > --- a/cutils.c > +++ b/cutils.c > @@ -291,9 +291,9 @@ int fcntl_setfl(int fd, int flag) > * value must be terminated by whitespace, ',' or '\0'. Return -1 on > * error. > */ > -ssize_t strtosz_suffix(const char *nptr, char **end, const char default_suffix) > +int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix) > { > - ssize_t retval = -1; > + int64_t retval = -1; > char *endptr, c, d; > int mul_required = 0; > double val, mul, integral, fraction; > @@ -365,7 +365,7 @@ ssize_t strtosz_suffix(const char *nptr, char **end, const char default_suffix) > goto fail; > } > } > - if ((val * mul>= ~(size_t)0) || val< 0) { > + if ((val * mul>= INT64_MAX) || val< 0) { > goto fail; > } > retval = val * mul; > @@ -378,7 +378,7 @@ fail: > return retval; > } > > -ssize_t strtosz(const char *nptr, char **end) > +int64_t strtosz(const char *nptr, char **end) > { > return strtosz_suffix(nptr, end, STRTOSZ_DEFSUFFIX_MB); > } > diff --git a/monitor.c b/monitor.c > index f258000..fcdae15 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -4162,7 +4162,7 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, > break; > case 'o': > { > - ssize_t val; > + int64_t val; > char *end; > > while (qemu_isspace(*p)) { > diff --git a/qemu-common.h b/qemu-common.h > index 63d9943..cce6e61 100644 > --- a/qemu-common.h > +++ b/qemu-common.h > @@ -158,8 +158,8 @@ int fcntl_setfl(int fd, int flag); > #define STRTOSZ_DEFSUFFIX_MB 'M' > #define STRTOSZ_DEFSUFFIX_KB 'K' > #define STRTOSZ_DEFSUFFIX_B 'B' > -ssize_t strtosz(const char *nptr, char **end); > -ssize_t strtosz_suffix(const char *nptr, char **end, const char default_suffix); > +int64_t strtosz(const char *nptr, char **end); > +int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix); > > /* path.c */ > void init_paths(const char *prefix); > diff --git a/qemu-img.c b/qemu-img.c > index afd9ed2..6af2a4c 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -320,7 +320,7 @@ static int img_create(int argc, char **argv) > > /* Get image size, if specified */ > if (optind< argc) { > - ssize_t sval; > + int64_t sval; > sval = strtosz_suffix(argv[optind++], NULL, STRTOSZ_DEFSUFFIX_B); > if (sval< 0) { > error_report("Invalid image size specified! You may use k, M, G or " > diff --git a/vl.c b/vl.c > index 78fcef1..93425f4 100644 > --- a/vl.c > +++ b/vl.c > @@ -804,7 +804,7 @@ static void numa_add(const char *optarg) > if (get_param_value(option, 128, "mem", optarg) == 0) { > node_mem[nodenr] = 0; > } else { > - ssize_t sval; > + int64_t sval; > sval = strtosz(option, NULL); > if (sval< 0) { > fprintf(stderr, "qemu: invalid numa mem size: %s\n", optarg); > @@ -2245,7 +2245,7 @@ int main(int argc, char **argv, char **envp) > exit(0); > break; > case QEMU_OPTION_m: { > - ssize_t value; > + int64_t value; > > value = strtosz(optarg, NULL); > if (value< 0) { >