qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Lieven <pl@kamp.de>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, ronniesahlberg@gmail.com,
	stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCHv2] block/nfs: add knob to set readahead
Date: Tue, 24 Jun 2014 23:48:02 +0200	[thread overview]
Message-ID: <53A9F212.4020606@kamp.de> (raw)
In-Reply-To: <53A9A189.5050904@redhat.com>

Am 24.06.2014 18:04, schrieb Eric Blake:
> On 06/24/2014 02:52 AM, Peter Lieven wrote:
>> upcoming libnfs will feature internal readahead support.
>> Add a knob to pass the optional readahead value as a URL
>> parameter.
>>
>> This patch fixes also the incorrect usage of strncmp and
>> atoi.
>>
>> Signed-off-by: Peter Lieven <pl@kamp.de>
>> ---
>> v1->v2: use strtol instead of atoi [Eric]
>>
>>  block/nfs.c |   16 ++++++++++------
>>  1 file changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/block/nfs.c b/block/nfs.c
>> index ec43201..9783483 100644
>> --- a/block/nfs.c
>> +++ b/block/nfs.c
>> @@ -309,12 +309,16 @@ static int64_t nfs_client_open(NFSClient *client, const char *filename,
>>                         qp->p[i].name);
>>              goto fail;
>>          }
>> -        if (!strncmp(qp->p[i].name, "uid", 3)) {
>> -            nfs_set_uid(client->context, atoi(qp->p[i].value));
>> -        } else if (!strncmp(qp->p[i].name, "gid", 3)) {
>> -            nfs_set_gid(client->context, atoi(qp->p[i].value));
>> -        } else if (!strncmp(qp->p[i].name, "tcp-syncnt", 10)) {
>> -            nfs_set_tcp_syncnt(client->context, atoi(qp->p[i].value));
>> +        if (!strcmp(qp->p[i].name, "uid")) {
>> +            nfs_set_uid(client->context, strtol(qp->p[i].value, NULL, 0));
> If you're going to use strtol, use it correctly.  You have to pre-set
> errno, then check that something got parsed, that errno was not changed,
> and that no unexpected suffix remains.  Better is using a wrapper that
> already makes the parsing sane; such as parse_uint() from util/cutils.c.
>  That is, swapping atoi() with a raw strtol() with no additional error
> checking is not fixing any of the bugs inherent in the fact that atoi()
> cannot detect overflow in user input.

thanks for pointing that out. Actually I was grepping for strtoul in the
qemu source and found it in several places (also with no error checking).
I will change that.

>
> At this point, I'd rather see this split into two patches - one that
> fixes the atoi() usage, and another that adds readahead support - rather
> than trying to cram two things in one commit.
>
Right I will split that up.

Thanks for your comments,
Peter

      reply	other threads:[~2014-06-24 21:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-24  8:52 [Qemu-devel] [PATCHv2] block/nfs: add knob to set readahead Peter Lieven
2014-06-24 16:04 ` Eric Blake
2014-06-24 21:48   ` Peter Lieven [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53A9F212.4020606@kamp.de \
    --to=pl@kamp.de \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).