|
|
Message-ID: <alpine.LNX.2.20.13.1809021408250.23330@monopod.intra.ispras.ru>
Date: Sun, 2 Sep 2018 14:14:52 +0300 (MSK)
From: Alexander Monakov <amonakov@...ras.ru>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] simplify __procfdname by folding the 0 case
In 2016 I sent a more comprehensive cleanup, please review the thread
starting at http://openwall.com/lists/musl/2016/02/21/2
Some notes on the patch below.
On Sun, 2 Sep 2018, Fangrui Song wrote:
> --- a/src/internal/procfdname.c
> +++ b/src/internal/procfdname.c
> @@ -2,12 +2,7 @@ void __procfdname(char *buf, unsigned fd)
> {
> unsigned i, j;
> for (i=0; (buf[i] = "/proc/self/fd/"[i]); i++);
> - if (!fd) {
> - buf[i] = '0';
> - buf[i+1] = 0;
> - return;
> - }
> - for (j=fd; j; j/=10, i++);
> - buf[i] = 0;
> - for (; fd; fd/=10) buf[--i] = '0' + fd%10;
> + for (j=fd; i++, j /= 10; );
This is not correct as it only increments i once. A do-while loop would do the
job better here.
> + buf[i] = '\0';
> + while (buf[--i] = '0' + fd%10, fd /= 10);
Likewise, a do-while loop would be more suitable here.
> }
Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.