[DRBD-cvs] svn commit by phil - r3044 - branches/drbd-8.0/drbd - Fixed possible socket leakage.

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Sat Sep 1 08:47:24 CEST 2007


Author: phil
Date: 2007-09-01 08:47:22 +0200 (Sat, 01 Sep 2007)
New Revision: 3044

Modified:
   branches/drbd-8.0/drbd/drbd_receiver.c
Log:
Fixed possible socket leakage.


Modified: branches/drbd-8.0/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-8.0/drbd/drbd_receiver.c	2007-08-31 21:24:39 UTC (rev 3043)
+++ branches/drbd-8.0/drbd/drbd_receiver.c	2007-09-01 06:47:22 UTC (rev 3044)
@@ -596,14 +596,15 @@
 	struct socket *sock;
 	struct sockaddr_in src_in;
 
+	if (!inc_net(mdev)) return NULL;
+
 	err = sock_create_kern(AF_INET, SOCK_STREAM, IPPROTO_TCP, &sock);
 	if (err) {
+		dec_net(mdev);
 		ERR("sock_creat(..)=%d\n", err);
 		return NULL;
 	}
 
-	if(!inc_net(mdev)) return NULL;
-
 	sock->sk->sk_rcvtimeo =
 	sock->sk->sk_sndtimeo =  mdev->net_conf->try_connect_int*HZ;
 
@@ -646,14 +647,15 @@
 	int err;
 	struct socket *sock,*sock2;
 
+	if (!inc_net(mdev)) return NULL;
+
 	err = sock_create_kern(AF_INET, SOCK_STREAM, IPPROTO_TCP, &sock2);
 	if (err) {
+		dec_net(mdev);
 		ERR("sock_creat(..)=%d\n", err);
 		return NULL;
 	}
 
-	if(!inc_net(mdev)) return NULL;
-
 	sock2->sk->sk_reuse    = 1; /* SO_REUSEADDR */
 	sock2->sk->sk_rcvtimeo =
 	sock2->sk->sk_sndtimeo =  mdev->net_conf->try_connect_int*HZ;



More information about the drbd-cvs mailing list