diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-09-26 20:12:45 +0200 | 
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-09-26 20:12:45 +0200 | 
| commit | 0d41da2e31e81f5c8aaabe17f769de4304b2d4c8 (patch) | |
| tree | 540acefba9bf01d3880d7bacb767fbf9b1fe80b4 /net/socket.c | |
| parent | a0089bd617adea27ebc352e1e0871649ab1dbaa6 (diff) | |
| parent | e8b364b88cc4001b21c28c1ecf1e1e3ffbe162e6 (diff) | |
Merge branch 'pm-fixes' into pm-domains
Merge commit e8b364b88cc4001b21c28c1ecf1e1e3ffbe162e6
(PM / Clocks: Do not acquire a mutex under a spinlock) fixing
a regression in drivers/base/power/clock_ops.c.
Conflicts:
	drivers/base/power/clock_ops.c
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/net/socket.c b/net/socket.c index 24a77400b65e..ffe92ca32f2a 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1965,8 +1965,9 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg,  	 * used_address->name_len is initialized to UINT_MAX so that the first  	 * destination address never matches.  	 */ -	if (used_address && used_address->name_len == msg_sys->msg_namelen && -	    !memcmp(&used_address->name, msg->msg_name, +	if (used_address && msg_sys->msg_name && +	    used_address->name_len == msg_sys->msg_namelen && +	    !memcmp(&used_address->name, msg_sys->msg_name,  		    used_address->name_len)) {  		err = sock_sendmsg_nosec(sock, msg_sys, total_len);  		goto out_freectl; @@ -1978,8 +1979,9 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg,  	 */  	if (used_address && err >= 0) {  		used_address->name_len = msg_sys->msg_namelen; -		memcpy(&used_address->name, msg->msg_name, -		       used_address->name_len); +		if (msg_sys->msg_name) +			memcpy(&used_address->name, msg_sys->msg_name, +			       used_address->name_len);  	}  out_freectl:  | 
