projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e368d3a
)
cgroups: avoid accessing uninitialized data in failure path
author
Li Zefan
<
[email protected]
>
Tue, 23 Dec 2008 21:57:14 +0000
(13:57 -0800)
committer
Linus Torvalds
<
[email protected]
>
Tue, 23 Dec 2008 23:58:21 +0000
(15:58 -0800)
If cgroup_get_rootdir() failed, free_cg_links() will be called in the
failure path, but tmp_cg_links hasn't been initialized at that time.
I introduced this bug in the 2.6.27 merge window.
Signed-off-by: Li Zefan <
[email protected]
>
Acked-by: Serge Hallyn <
[email protected]
>
Cc: Paul Menage <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
kernel/cgroup.c
patch
|
blob
|
history
diff --git
a/kernel/cgroup.c
b/kernel/cgroup.c
index a3415507bd0a46f666a01ce2534c6f5b07c33268..2606d0fb4e54e8f120618328c7b72c01634dc35d 100644
(file)
--- a/
kernel/cgroup.c
+++ b/
kernel/cgroup.c
@@
-1024,7
+1024,7
@@
static int cgroup_get_sb(struct file_system_type *fs_type,
if (ret == -EBUSY) {
mutex_unlock(&cgroup_mutex);
mutex_unlock(&inode->i_mutex);
- goto
drop_new_super
;
+ goto
free_cg_links
;
}
/* EBUSY should be the only error here */
@@
-1073,10
+1073,11
@@
static int cgroup_get_sb(struct file_system_type *fs_type,
return simple_set_mnt(mnt, sb);
+ free_cg_links:
+ free_cg_links(&tmp_cg_links);
drop_new_super:
up_write(&sb->s_umount);
deactivate_super(sb);
- free_cg_links(&tmp_cg_links);
return ret;
}