diff options
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/msg.h | 7 | ||||
-rw-r--r-- | net/tipc/socket.c | 4 |
2 files changed, 5 insertions, 6 deletions
diff --git a/net/tipc/msg.h b/net/tipc/msg.h index 6ad070d87702..ad487e8abcc2 100644 --- a/net/tipc/msg.h +++ b/net/tipc/msg.h | |||
@@ -70,10 +70,9 @@ static inline void msg_set_bits(struct tipc_msg *m, u32 w, | |||
70 | u32 pos, u32 mask, u32 val) | 70 | u32 pos, u32 mask, u32 val) |
71 | { | 71 | { |
72 | val = (val & mask) << pos; | 72 | val = (val & mask) << pos; |
73 | val = htonl(val); | 73 | mask = mask << pos; |
74 | mask = htonl(mask << pos); | 74 | m->hdr[w] &= ~htonl(mask); |
75 | m->hdr[w] &= ~mask; | 75 | m->hdr[w] |= htonl(val); |
76 | m->hdr[w] |= val; | ||
77 | } | 76 | } |
78 | 77 | ||
79 | /* | 78 | /* |
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 05853159536a..230f9ca2ad6b 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -1756,8 +1756,8 @@ static int getsockopt(struct socket *sock, | |||
1756 | else if (len < sizeof(value)) { | 1756 | else if (len < sizeof(value)) { |
1757 | res = -EINVAL; | 1757 | res = -EINVAL; |
1758 | } | 1758 | } |
1759 | else if ((res = copy_to_user(ov, &value, sizeof(value)))) { | 1759 | else if (copy_to_user(ov, &value, sizeof(value))) { |
1760 | /* couldn't return value */ | 1760 | res = -EFAULT; |
1761 | } | 1761 | } |
1762 | else { | 1762 | else { |
1763 | res = put_user(sizeof(value), ol); | 1763 | res = put_user(sizeof(value), ol); |