mailing list of musl libc
 help / color / mirror / code / Atom feed
From: "Fāng-ruì Sòng" <emacsray@gmail.com>
To: musl@lists.openwall.com
Subject: Re: [PATCH] simplify __procfdname by folding the 0 case
Date: Sun, 9 Sep 2018 12:04:32 -0700	[thread overview]
Message-ID: <CAN30aBG+7j6Ki3Q3s-0M7CFFa_XFw4cdg7HuOr5B=_FgF_qbDg@mail.gmail.com> (raw)
In-Reply-To: <alpine.LNX.2.20.13.1809021408250.23330@monopod.intra.ispras.ru>

[-- Attachment #1: Type: text/plain, Size: 1261 bytes --]

On Sun, Sep 2, 2018 at 4:15 AM Alexander Monakov <amonakov@ispras.ru> wrote:

> 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.
>

May I defend for myself?  for (j=fd; i++, j /= 10; );
i++ is in the loop condition so it will be incremented multiple times.


> > +     buf[i] = '\0';
> > +     while (buf[--i] = '0' + fd%10, fd /= 10);
>
> Likewise, a do-while loop would be more suitable here.
>

I'm still learning musl's code style so may likely make the code look ugly
:)


> >  }
>
> Alexander
>

[-- Attachment #2: Type: text/html, Size: 2160 bytes --]

  reply	other threads:[~2018-09-09 19:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-02  7:51 Fangrui Song
2018-09-02 11:14 ` Alexander Monakov
2018-09-09 19:04   ` Fāng-ruì Sòng [this message]
2018-09-09 21:30     ` Alexander Monakov

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='CAN30aBG+7j6Ki3Q3s-0M7CFFa_XFw4cdg7HuOr5B=_FgF_qbDg@mail.gmail.com' \
    --to=emacsray@gmail.com \
    --cc=musl@lists.openwall.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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

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).