mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Jiri Kosina <jkosina@suse.cz>
Cc: linux-kernel@vger.kernel.org, Heiko Carstens <heiko.carstens@de.ibm.com>
Subject: Re: [PATCH 2/7] ipc: fix trivial warning
Date: Mon, 19 Oct 2009 19:49:27 +0300	[thread overview]
Message-ID: <94a0d4530910190949y265426cbq4c32466a9fab8966@mail.gmail.com> (raw)
In-Reply-To: <alpine.LSU.2.00.0910191716580.8582@wotan.suse.de>

On Mon, Oct 19, 2009 at 6:29 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> On Mon, 19 Oct 2009, Felipe Contreras wrote:
>
>> >> >> ipc/msg.c: In function ?msgctl_down?:
>> >> >> ipc/msg.c:415: warning: ?msqid64? may be used uninitialized in this function
>> >> >>
>> >> >> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
>> >> >> ---
>> >> >>  ipc/msg.c |    2 +-
>> >> >>  1 files changed, 1 insertions(+), 1 deletions(-)
>> >> >>
>> >> >> diff --git a/ipc/msg.c b/ipc/msg.c
>> >> >> index 2ceab7f..085bd58 100644
>> >> >> --- a/ipc/msg.c
>> >> >> +++ b/ipc/msg.c
>> >> >> @@ -412,7 +412,7 @@ static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd,
>> >> >>                      struct msqid_ds __user *buf, int version)
>> >> >>  {
>> >> >>       struct kern_ipc_perm *ipcp;
>> >> >> -     struct msqid64_ds msqid64;
>> >> >> +     struct msqid64_ds uninitialized_var(msqid64);
>> >> >>       struct msg_queue *msq;
>> >> >>       int err;
> [ ... snip ... ]
>> > I have verified both with 4.1 and 4.3, and it doesn't emit this
>> > false-positive warning, so there have been gcc versions getting this
>> > right. Ergo gcc developers should rather fix this "regression" and revert
>> > to the old behavior, methinks.
>>
>> The other possibility is that the bug was in gcc 4.1/4.3, and now 4.4
>> finds an actual problem in the code. I will try to dig deeper to see
>> what's actually happening... at first glance I don't see who is
>> initializing msqid64.
>
> This statement of your makes me wonder why you have submitted the patch in
> the first place, as you are apparently not sure whether adding
> uninitialized_var() is a valid thing to do or not.

Because I want to get rid of the warning?

Also, if you look at the commit I mentioned in the commit message
(a0d092f), you'll see this change:
-	struct msq_setbuf uninitialized_var(setbuf);
+	struct msq_setbuf setbuf;

Which is ok, because in that version msgctl_down is calling
audit_ipc_set_perm, directly, but only when cmd == IPC_SET. However,
later on (a5f75e7), ipcctl_pre_down was introduced, and the check was
delegated, and that most probably introduced the warning.

In any case, if the patch is not correct, then somebody should point
that out, which is what the patch review process is for. Alternatively
I could have sent an email asking what is happening here, but from my
point of view this patch serves exactly the same purpose, and has the
advantage that it might turn out to be correct.

It's not as if I didn't do any homework while writing this patch.

> The gcc warning in this case is actually bogus, as msqid64 is touched only
> iff cmd == IPC_SET, and in such case, copy_msqid_from_user() initializes
> it properly.

Yes, but it's used by ipcctl_pre_down, which from what I can see is
only using those arguments when cmd == IPC_SET, so everything is ok.
But still, I don't think the compiler _should_ know what
ipcctl_pre_down is going to do, if you look _only_ at msgctl_down,
then uninitialized_var is OK.

Cheers.

-- 
Felipe Contreras

  reply	other threads:[~2009-10-19 16:49 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-18 22:54 [PATCH 0/7] trivial: fix some compilation warnings for 2.6.32-rc5 Felipe Contreras
2009-10-18 22:54 ` [PATCH 1/7] usb: trivial cleanups Felipe Contreras
2009-10-18 23:09   ` Felipe Contreras
2009-10-19 13:59     ` Alan Stern
2009-10-19 14:03       ` Felipe Contreras
2009-10-19 14:14         ` Alan Stern
2009-10-19  0:02   ` Greg KH
2009-10-19  1:04     ` Felipe Contreras
2009-10-18 22:54 ` [PATCH 2/7] ipc: fix trivial warning Felipe Contreras
2009-10-19 14:12   ` Jiri Kosina
2009-10-19 14:50     ` Felipe Contreras
2009-10-19 14:57       ` Jiri Kosina
2009-10-19 15:15         ` Felipe Contreras
2009-10-19 15:29           ` Jiri Kosina
2009-10-19 16:49             ` Felipe Contreras [this message]
2009-10-19 22:50               ` Jiri Kosina
2009-11-12  0:28                 ` Felipe Contreras
2009-11-12  1:13                   ` Jiri Kosina
2009-10-18 22:54 ` [PATCH 3/7] crypto: testmgr: fix warning Felipe Contreras
2009-10-19 13:52   ` Jiri Kosina
2009-10-19 13:58     ` Jarod Wilson
2009-10-19 14:03       ` Jarod Wilson
2009-11-12  0:32         ` Felipe Contreras
2009-11-12  0:43           ` Herbert Xu
2009-10-18 22:54 ` [PATCH 4/7] acpi: processor: fix section mismatch Felipe Contreras
2009-11-04 13:28   ` Jiri Kosina
2009-11-12  0:30     ` Felipe Contreras
2009-10-18 22:54 ` [PATCH 5/7] acpi: fix a bunch of style issues on 'actypes.h' Felipe Contreras
2009-10-19 14:20   ` Jiri Kosina
2009-10-19 14:57     ` Felipe Contreras
2009-10-19 15:03       ` Jiri Kosina
2009-10-19 16:16         ` Felipe Contreras
2009-10-20  5:53         ` Artem Bityutskiy
2009-11-13 20:58     ` Daniel Walker
2009-11-13 21:08       ` Moore, Robert
2009-11-13 21:41         ` Jiri Kosina
2009-11-13 21:48           ` Daniel Walker
2009-10-18 22:54 ` [PATCH 6/7] acpi: fix trivial warning Felipe Contreras
2009-10-19 14:14   ` Jiri Kosina
2009-10-18 22:54 ` [PATCH 7/7] acpi: fix trivial warnings caused by previous commmit Felipe Contreras

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=94a0d4530910190949y265426cbq4c32466a9fab8966@mail.gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®