Skip to contentSkip to conversation

fs/nfsd/vfs.c: fix possible runtime stack corruption

PATCH New Adrian Bunk 1 participant 1 message Dec 13, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fs/nfsd/vfs.c: fix possible runtime stack corruption

Compiling 2.6.15-rc5-mm2 with CONFIG_NFSD_V4=n and CONFIG_NFSD_V2_ACL=y or CONFIG_NFSD_V3_ACL=y results due to add-vfs_-helpers-for-xattr-operations.patch in the following:

<-- snip -->

...
CC [M] fs/nfsd/vfs.o
fs/nfsd/vfs.c: In function 'nfsd_getxattr':
fs/nfsd/vfs.c:376: warning: implicit declaration of function 'vfs_getxattr' fs/nfsd/vfs.c: In function 'nfsd_set_posix_acl':
fs/nfsd/vfs.c:1931: warning: implicit declaration of function 'vfs_setxattr' fs/nfsd/vfs.c:1936: warning: implicit declaration of function 'vfs_removexattr'
...

<-- snip -->

The possible stack corruption if gcc guessed the types of the parameters of any of these functions wrong is obvious.

Given the -Werror-implicit-function-declaration flag, gcc would abort compilation in such cases:

<-- snip -->

...
CC [M] fs/nfsd/vfs.o
fs/nfsd/vfs.c: In function 'nfsd_getxattr':
fs/nfsd/vfs.c:376: error: implicit declaration of function 'vfs_getxattr' fs/nfsd/vfs.c: In function 'nfsd_set_posix_acl':
fs/nfsd/vfs.c:1931: error: implicit declaration of function 'vfs_setxattr' fs/nfsd/vfs.c:1936: error: implicit declaration of function 'vfs_removexattr' make[2]: *** [fs/nfsd/vfs.o] Error 1

<-- snip -->

fs/nfsd/vfs.c renamed from fs/nfsd/vfs.c.old +1 -1
@@ -48,8 +48,8 @@
 #include <linux/fsnotify.h>
 #include <linux/posix_acl.h>
 #include <linux/posix_acl_xattr.h>
-#ifdef CONFIG_NFSD_V4
 #include <linux/xattr.h>
+#ifdef CONFIG_NFSD_V4
 #include <linux/nfs4.h>
 #include <linux/nfs4_acl.h>
 #include <linux/nfsd_idmap.h>