Selaa lähdekoodia

net: ipmr: fix setsockopt error return

We can have both errors and we'll return the second one, fix it to
return an error at a time as it's normal. I've overlooked this in my
previous set.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Nikolay Aleksandrov 9 vuotta sitten
vanhempi
commit
42e6b89ce4
1 muutettua tiedostoa jossa 5 lisäystä ja 3 poistoa
  1. 5 3
      net/ipv4/ipmr.c

+ 5 - 3
net/ipv4/ipmr.c

@@ -1284,12 +1284,14 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval,
 
 
 	switch (optname) {
 	switch (optname) {
 	case MRT_INIT:
 	case MRT_INIT:
-		if (optlen != sizeof(int))
+		if (optlen != sizeof(int)) {
 			ret = -EINVAL;
 			ret = -EINVAL;
-		if (rtnl_dereference(mrt->mroute_sk))
+			break;
+		}
+		if (rtnl_dereference(mrt->mroute_sk)) {
 			ret = -EADDRINUSE;
 			ret = -EADDRINUSE;
-		if (ret)
 			break;
 			break;
+		}
 
 
 		ret = ip_ra_control(sk, 1, mrtsock_destruct);
 		ret = ip_ra_control(sk, 1, mrtsock_destruct);
 		if (ret == 0) {
 		if (ret == 0) {