rose: Socket lock was not released before returning to user space
[sfrench/cifs-2.6.git] / net / rose / af_rose.c
index d1ff3f885c5de5017d1b2fe21a0233eba88d7ea4..1ebf65294405976788168815b8420df757f4a7aa 100644 (file)
@@ -760,8 +760,10 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
 
        rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause,
                                         &diagnostic);
-       if (!rose->neighbour)
-               return -ENETUNREACH;
+       if (!rose->neighbour) {
+               err = -ENETUNREACH;
+               goto out_release;
+       }
 
        rose->lci = rose_new_lci(rose->neighbour);
        if (!rose->lci) {