All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Dubbs <bruce.dubbs@gmail.com>
To: Karel Zak <kzak@redhat.com>, Tobias Stoeckmann <tobias@stoeckmann.org>
Cc: util-linux@vger.kernel.org
Subject: Re: [PATCH] libblkid: Avoid strlen if only first char is checked
Date: Thu, 6 Oct 2016 14:02:53 -0500	[thread overview]
Message-ID: <57F69FDD.5010206@gmail.com> (raw)
In-Reply-To: <20161006125912.p2xyff3h44gc36ub@ws.net.home>

Karel Zak wrote:
> On Mon, Oct 03, 2016 at 10:05:03PM +0200, Tobias Stoeckmann wrote:
>> A strlen() call can lead to out of boundary read access if the
>> superblock in question has no nul-bytes after the string. This
>> could be avoided by using strnlen() but the calls in question
>> merely existed to check if the string length is not 0.
>>
>> By changing the calls as proposed with this diff, these files are
>> in sync with other superblock files, which do exactly the same.
>> ---
>>   libblkid/src/superblocks/befs.c  | 2 +-
>>   libblkid/src/superblocks/ext.c   | 2 +-
>>   libblkid/src/superblocks/jfs.c   | 2 +-
>>   libblkid/src/superblocks/nilfs.c | 2 +-
>>   libblkid/src/superblocks/romfs.c | 2 +-
>>   libblkid/src/superblocks/xfs.c   | 2 +-
>>   6 files changed, 6 insertions(+), 6 deletions(-)
>
>   Applied, thanks.
>
>> diff --git a/libblkid/src/superblocks/befs.c b/libblkid/src/superblocks/befs.c
>> index 7e9eaf6..36e079f 100644
>> --- a/libblkid/src/superblocks/befs.c
>> +++ b/libblkid/src/superblocks/befs.c
>> @@ -451,7 +451,7 @@ static int probe_befs(blkid_probe pr, const struct blkid_idmag *mag)
>>   	/*
>>   	 * all checks pass, set LABEL, VERSION and UUID
>>   	 */
>> -	if (strlen(bs->name))
>> +	if (*bs->name != '\0')
>
> Good catch, I hate it too. BTW, you can use
>
>      if (*bs->name)
>
> it's enough.

It is enough for the compiler, but the explicit comparison is more clear 
to a casual reader.  The compiler probably optimizes out the comparison 
anyway.

   -- Bruce

      parent reply	other threads:[~2016-10-06 19:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-03 20:05 [PATCH] libblkid: Avoid strlen if only first char is checked Tobias Stoeckmann
2016-10-06 12:59 ` Karel Zak
2016-10-06 13:22   ` Aurélien Aptel
2016-10-06 19:02   ` Bruce Dubbs [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=57F69FDD.5010206@gmail.com \
    --to=bruce.dubbs@gmail.com \
    --cc=kzak@redhat.com \
    --cc=tobias@stoeckmann.org \
    --cc=util-linux@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.