diff options
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/net/socket.c b/net/socket.c index dfe5b66c97e..edc3c4af908 100644 --- a/net/socket.c +++ b/net/socket.c @@ -2604,7 +2604,7 @@ static int do_siocgstamp(struct net *net, struct socket *sock,  	err = sock_do_ioctl(net, sock, cmd, (unsigned long)&ktv);  	set_fs(old_fs);  	if (!err) -		err = compat_put_timeval(up, &ktv); +		err = compat_put_timeval(&ktv, up);  	return err;  } @@ -2620,7 +2620,7 @@ static int do_siocgstampns(struct net *net, struct socket *sock,  	err = sock_do_ioctl(net, sock, cmd, (unsigned long)&kts);  	set_fs(old_fs);  	if (!err) -		err = compat_put_timespec(up, &kts); +		err = compat_put_timespec(&kts, up);  	return err;  } @@ -2657,6 +2657,7 @@ static int dev_ifconf(struct net *net, struct compat_ifconf __user *uifc32)  	if (copy_from_user(&ifc32, uifc32, sizeof(struct compat_ifconf)))  		return -EFAULT; +	memset(&ifc, 0, sizeof(ifc));  	if (ifc32.ifcbuf == 0) {  		ifc32.ifc_len = 0;  		ifc.ifc_len = 0;  |