* [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xat
@ 2012-09-12 2:28 Fengguang Wu
2012-09-12 7:55 ` [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new Dan Carpenter
2012-09-12 13:40 ` Aristeu Rozanski
0 siblings, 2 replies; 3+ messages in thread
From: Fengguang Wu @ 2012-09-12 2:28 UTC (permalink / raw)
To: kernel-janitors
Hi Aristeu,
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
head: 9814e970d7947dcc5ab7b37a53514c0098bfacc9
commit: 38f38657444d15e1a8574eae80ed3de9f501737a xattr: extract simple_xattr code from tmpfs
fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xattr'.
vim +882 fs/xattr.c
872 } else {
873 list_del(&xattr->list);
874 }
875 goto out;
876 }
877 }
878 if (flags & XATTR_REPLACE) {
879 xattr = new_xattr;
880 err = -ENODATA;
881 } else {
> 882 list_add(&new_xattr->list, &xattrs->head);
883 xattr = NULL;
884 }
885 out:
886 spin_unlock(&xattrs->lock);
887 if (xattr) {
888 kfree(xattr->name);
889 kfree(xattr);
890 }
891 return err;
892
---
0-DAY kernel build testing backend Open Source Technology Centre
Fengguang Wu <wfg@linux.intel.com> Intel Corporation
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new
2012-09-12 2:28 [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xat Fengguang Wu
@ 2012-09-12 7:55 ` Dan Carpenter
2012-09-12 13:40 ` Aristeu Rozanski
1 sibling, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2012-09-12 7:55 UTC (permalink / raw)
To: kernel-janitors
On Wed, Sep 12, 2012 at 10:28:13AM +0800, Fengguang Wu wrote:
> Hi Aristeu,
>
> FYI, there are new smatch warnings show up in
>
> tree: git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
> head: 9814e970d7947dcc5ab7b37a53514c0098bfacc9
> commit: 38f38657444d15e1a8574eae80ed3de9f501737a xattr: extract simple_xattr code from tmpfs
>
>
> fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xattr'.
>
I don't know if this specific code is buggy or not. It would depend
on how the function is called.
But potentially I should disable this Smatch rule. It tends to have
a lot of false positives. The thing is that GCC complains if you
don't initialize "new_xattr", but if you initialize it to NULL then
Smatch complains.
One solution might be to use the unitialized_var() macro.
- struct simple_xattr *new_xattr = NULL;
+ struct simple_xattr *uninitialized_var(new_xattr);
That would make both GCC and Smatch happy.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new
2012-09-12 2:28 [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xat Fengguang Wu
2012-09-12 7:55 ` [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new Dan Carpenter
@ 2012-09-12 13:40 ` Aristeu Rozanski
1 sibling, 0 replies; 3+ messages in thread
From: Aristeu Rozanski @ 2012-09-12 13:40 UTC (permalink / raw)
To: kernel-janitors
On Wed, Sep 12, 2012 at 10:55:17AM +0300, Dan Carpenter wrote:
> On Wed, Sep 12, 2012 at 10:28:13AM +0800, Fengguang Wu wrote:
> > Hi Aristeu,
> >
> > FYI, there are new smatch warnings show up in
> >
> > tree: git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
> > head: 9814e970d7947dcc5ab7b37a53514c0098bfacc9
> > commit: 38f38657444d15e1a8574eae80ed3de9f501737a xattr: extract simple_xattr code from tmpfs
> >
> >
> > fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xattr'.
> >
>
> I don't know if this specific code is buggy or not. It would depend
> on how the function is called.
this should be safe. the only way to have value = NULL (thus keeping
new_xattr from being initialized) is if you call __simple_xattr_set()
directly with the intention of removing an existing entry.
> But potentially I should disable this Smatch rule. It tends to have
> a lot of false positives. The thing is that GCC complains if you
> don't initialize "new_xattr", but if you initialize it to NULL then
> Smatch complains.
>
> One solution might be to use the unitialized_var() macro.
>
> - struct simple_xattr *new_xattr = NULL;
> + struct simple_xattr *uninitialized_var(new_xattr);
>
> That would make both GCC and Smatch happy.
Sounds good to me. Will get a patch ready. Thanks Dan.
--
Aristeu
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-09-12 13:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-12 2:28 [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new_xat Fengguang Wu
2012-09-12 7:55 ` [cgroup:for-next 5/6] fs/xattr.c:882 __simple_xattr_set() error: potential NULL dereference 'new Dan Carpenter
2012-09-12 13:40 ` Aristeu Rozanski
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).