From: Vladislav Ivanishin <vlad@ispras.ru>
To: Alexey Gladkov <gladkov.alexey@gmail.com>
Cc: kbd@lists.altlinux.org
Subject: Re: [kbd] [Lint][Bug report] src/openvt.c:386: 'pid' may be used uninitialized
Date: Thu, 11 Jul 2019 21:03:49 +0300 [thread overview]
Message-ID: <87ef2wxxbu.fsf@ispras.ru> (raw)
In-Reply-To: <87v9xcugq3.fsf@ispras.ru> (Vladislav Ivanishin's message of "Tue, 11 Jun 2019 21:20:04 +0300")
Sorry, I didn't get your reply (not sure what the actual reason is, but
it seems as if you've only replied to the list, and I am not subscribed)
so I've just read it today in the archives.
> On Tue, Jun 11, 2019 at 09:20:04PM +0300, Vladislav Ivanishin wrote:
> > Hi,
> >
> > I've found this bug using a static analyzer (slightly improved GCC).
> >
> > Consider variable `pid` in function main from src/openvt.c:
> >
> > src/openvt.c:166: int opt, pid, i;
> > src/openvt.c:303: if (direct_exec || ((pid = fork()) == 0)) {
> > src/openvt.c:386: if (pid < 0)
> > src/openvt.c:393: waitpid(pid, &retval, 0);
> >
> > If direct_exec is TRUE, then pid doesn't get initialized, but it is used
> > outside the conditional regardless of that.
>
> This is not a bug. If direct_exec is TRUE we will never be on line 386.
Oh, I didn't realize that; my bad, thanks for pointing this out.
The real issue preventing the analyzer (i.e. the compiler) from seeing
this as well is kbd_error lacking the noreturn attribute.
> To make linter happy, I’ll make pid = 0.
So a more proper fix would be adding the attribute in the header file.
It would also make other compiler analyses/optimizations more effective.
--
Vlad
> Thanks!
> --
> Rgrds, legion
next prev parent reply other threads:[~2019-07-11 18:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-11 18:20 [kbd] [Lint][Bug report] src/openvt.c:386: 'pid' may be used uninitialized Vladislav Ivanishin
2019-06-20 8:59 ` Alexey Gladkov
2019-07-11 18:03 ` Vladislav Ivanishin [this message]
2019-07-11 19:22 ` Alexey Gladkov
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=87ef2wxxbu.fsf@ispras.ru \
--to=vlad@ispras.ru \
--cc=gladkov.alexey@gmail.com \
--cc=kbd@lists.altlinux.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.