initialize the array of fs/ncpfs/inode.c
PATCH 1/1 initialize the array of fs/ncpfs/inode.c
Hi us,
When i compile the linux-2.6.38.2, some warnings happened
to me. One of them is like following.
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be used uninitialized in this function
...
See details by the URL:
http://s1202.photobucket.com/albums/bb364/harrywei/Kernel/?action=view¤t=patched.png
So i patch for it below.
Thanks.
Harry Wei.
From: Harry Wei <[email protected]>
--- fs/ncpfs/inode.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
fs/ncpfs/inode.c +2 -0
@@ -30,6 +30,7 @@#include <linux/mount.h> #include <linux/seq_file.h> #include <linux/namei.h> +#include <linux/ncp.h> #include <net/sock.h>
@@ -461,6 +462,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)#endif struct ncp_entry_info finfo; + data.mounted_vol[NCP_VOLNAME_LEN + 1] = {0}; data.wdog_pid =NULL ; server =kzalloc (sizeof (struct ncp_server ),GFP_KERNEL );if (!server)
Signature · 1 line
1.7.0.4
Quoted 10 lines · On Sun, 10 Apr 2011 18:08:18 +0800 Harry Wei <[email protected]> wrote:
Hi us,
When i compile the linux-2.6.38.2, some warnings happened
to me. One of them is like following.
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be used uninitialized in this function
...
See details by the URL:
http://s1202.photobucket.com/albums/bb364/harrywei/Kernel/?action=view¤t=patched.png
Yup. The compiler is "wrong" because it doesn't know that the uninitialised bytes will never be read, because they fall after the '\0' in a null-terminated string.
Review static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent) · line 468
Quoted 8 lines
(quoted diff) +1
-0@@ -461,6 +462,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent) #endif struct ncp_entry_info finfo; + data.mounted_vol[NCP_VOLNAME_LEN + 1] = {0}; data.wdog_pid = NULL; server = kzalloc(sizeof(struct ncp_server), GFP_KERNEL); if (!server)
hm. I'm not sure that this fixed data.mounted_vol[2u], data.mounted_vol[3u], etc.
How about we use the big hammer?
From: Andrew Morton <[email protected]>
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be used uninitialized in this function fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[2u]' may be used uninitialized in this function fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[3u]' may be used uninitialized in this function
...
It's notabug, but we can easily fix it with a memset().
---
fs/ncpfs/inode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
fs/ncpfs/inode.c renamed from fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warning +1 -3
@@ -461,7 +461,7 @@ static int ncp_fill_super(struct super_b#endif struct ncp_entry_info finfo; - data.wdog_pid =NULL ; +memset (data,0 ,sizeof (data)); server =kzalloc (sizeof (struct ncp_server ),GFP_KERNEL );if (!server)return -ENOMEM ;
@@ -496,7 +496,6 @@ static int ncp_fill_super(struct super_bstruct ncp_mount_data_v4 * md = (struct ncp_mount_data_v4 *)raw_data; data.flags = md->flags; - data.int_flags =0 ; data.mounted_uid = md->mounted_uid; data.wdog_pid =find_get_pid (md->wdog_pid); data.ncp_fd = md->ncp_fd;
@@ -507,7 +506,6 @@ static int ncp_fill_super(struct super_b data.file_mode = md->file_mode; data.dir_mode = md->dir_mode; data.info_fd =-1 ; - data.mounted_vol[0 ] =0 ; }break ;default :
_
Quoted 56 lines · Andrew Morton
Quoted 10 lines · On Sun, 10 Apr 2011 18:08:18 +0800 Harry Wei<[email protected]> wrote:
Hi us,
When i compile the linux-2.6.38.2, some warnings happened
to me. One of them is like following.
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be used uninitialized in this function
...
See details by the URL:
http://s1202.photobucket.com/albums/bb364/harrywei/Kernel/?action=view¤t=patched.pngYup. The compiler is "wrong" because it doesn't know that the uninitialised bytes will never be read, because they fall after the '\0' in a null-terminated string.
fs/ncpfs/inode.c static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent) · line 468
Quoted 8 lines
fs/ncpfs/inode.c renamed from fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warning +1
-0@@ -461,6 +462,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)#endif struct ncp_entry_info finfo; + data.mounted_vol[NCP_VOLNAME_LEN + 1] = {0}; data.wdog_pid =NULL ; server =kzalloc (sizeof (struct ncp_server ),GFP_KERNEL );if (!server)hm. I'm not sure that this fixed data.mounted_vol[2u], data.mounted_vol[3u], etc.
How about we use the big hammer?
From: Andrew Morton<[email protected]>
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be used uninitialized in this functionfs/ncpfs/inode.c:451: warning: 'data.mounted_vol[2u]' may be used uninitialized in this functionfs/ncpfs/inode.c:451: warning: 'data.mounted_vol[3u]' may be used uninitialized in this function
...It's notabug, but we can easily fix it with a
memset().Reported-by Harry Wei<[email protected]>Cc Petr Vandrovec<[email protected]>Signed-off-by Andrew Morton<[email protected]>---
fs/ncpfs/inode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)diff -puN
fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warningfs/ncpfs/inode.c
fs/ncpfs/inode.c static int ncp_fill_super(struct super_b · line 464
Quoted 5 lines
fs/ncpfs/inode.c renamed from fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warning +1
-1@@ -461,7 +461,7 @@ static int ncp_fill_super(struct super_b#endif struct ncp_entry_info finfo; - data.wdog_pid =NULL ; +memset (data,0 ,sizeof (data));
Needs '&' ?
memset(&data, 0, sizeof(data));
Quoted 26 lines
fs/ncpfs/inode.c renamed from fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warning +0
-2server =kzalloc (sizeof (struct ncp_server ),GFP_KERNEL );if (!server)return -ENOMEM ;@@ -496,7 +496,6 @@ static int ncp_fill_super(struct super_bstruct ncp_mount_data_v4 * md = (struct ncp_mount_data_v4 *)raw_data; data.flags = md->flags; - data.int_flags =0 ; data.mounted_uid = md->mounted_uid; data.wdog_pid =find_get_pid (md->wdog_pid); data.ncp_fd = md->ncp_fd;@@ -507,7 +506,6 @@ static int ncp_fill_super(struct super_b data.file_mode = md->file_mode; data.dir_mode = md->dir_mode; data.info_fd =-1 ; - data.mounted_vol[0 ] =0 ; }break ;default :_
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 1 line
Tim Gardner [email protected]
Quoted 16 lines · Andrew Morton
Quoted 2 lines · On Sun, 10 Apr 2011 18:08:18 +0800 Harry Wei <[email protected]> wrote:
fs/ncpfs/inode.c: In function 'ncp_fill_super':fs/ncpfs/inode.c:451: warning: 'data.mounted_vol[1u]' may be usedIt's notabug, but we can easily fix it with a
memset().Reported-by Harry Wei <[email protected]>Cc Petr Vandrovec <[email protected]>Signed-off-by Andrew Morton <[email protected]>---
fs/ncpfs/inode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
Review
Quoted 2 lines
(quoted diff) +1
-1- data.wdog_pid = NULL; + memset(data, 0, sizeof(data));
Hi Morton,
It really need a '&' for data, i think. So i have corrected
your patch like following.
Thanks.
Harry Wei.
---
fs/ncpfs/inode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
fs/ncpfs/inode.c renamed from fs/ncpfs/inode.c~fs-ncpfs-inodec-suppress-used-uninitialised-warning +1 -1
@@ -461,7 +461,7 @@ static int ncp_fill_super(struct super_b#endif struct ncp_entry_info finfo; - data.wdog_pid =NULL ; +memset (&data,0 ,sizeof (data)); server =kzalloc (sizeof (struct ncp_server ),GFP_KERNEL );if (!server)
return -ENOMEM;
@@ -496,7 +496,6 @@ static int ncp_fill_super(struct super_b
struct ncp_mount_data_v4* md = (struct ncp_mount_data_v4*)raw_data;
data.flags = md->flags;
- data.int_flags = 0;
data.mounted_uid = md->mounted_uid;
data.wdog_pid = find_get_pid(md->wdog_pid);
data.ncp_fd = md->ncp_fd;
@@ -507,7 +506,6 @@ static int ncp_fill_super(struct super_b
data.file_mode = md->file_mode;
data.dir_mode = md->dir_mode;
data.info_fd = -1;
- data.mounted_vol[0] = 0;
}
break;
default:_