Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Sep 2010 10:50:58 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r212090 - projects/sv/sys/net
Message-ID:  <201009011050.o81AowFP061594@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Wed Sep  1 10:50:58 2010
New Revision: 212090
URL: http://svn.freebsd.org/changeset/base/212090

Log:
  Fix a lock-leak due to wrong movement.

Modified:
  projects/sv/sys/net/netdump_client.c

Modified: projects/sv/sys/net/netdump_client.c
==============================================================================
--- projects/sv/sys/net/netdump_client.c	Wed Sep  1 10:07:40 2010	(r212089)
+++ projects/sv/sys/net/netdump_client.c	Wed Sep  1 10:50:58 2010	(r212090)
@@ -1197,17 +1197,17 @@ netdump_trigger(void *arg, int howto)
 		return;
 	}
 
+	/* Make the card use *our* receive callback */
+	old_if_input = nd_nic->if_input;
+	nd_nic->if_input = netdump_pkt_in;
+
 	/* Check if we can use polling */
 	if (!(nd_nic->if_capenable & IFCAP_POLLING)) {
 		printf("netdump_trigger: Can't dump: interface %s does not have"
 		       " polling enabled.\n", nd_nic->if_xname);
-		dumping--;
-		return;
+		goto trig_abort;
 	}
 
-	/* Make the card use *our* receive callback */
-	old_if_input = nd_nic->if_input;
-	nd_nic->if_input = netdump_pkt_in;
 	if (nd_gw.s_addr == INADDR_ANY) {
 		nd_gw.s_addr = nd_server.s_addr;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009011050.o81AowFP061594>