Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Dec 2007 21:29:59 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 130813 for review
Message-ID:  <200712132129.lBDLTxkd093423@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=130813

Change 130813 by kmacy@kmacy:storage:toestack on 2007/12/13 21:29:52

	don't leak rtentry reference in case of failure

Affected files ...

.. //depot/projects/toestack/sys/netinet/tcp_ofld.c#9 edit

Differences ...

==== //depot/projects/toestack/sys/netinet/tcp_ofld.c#9 (text+ko) ====

@@ -56,7 +56,7 @@
 	struct ifnet *ifp;
 	struct toedev *tdev;
 	struct rtentry *rt;
-	int error;
+	int error = 0;
 
 	rt = rtalloc2(nam, 1, 0);
 	if (rt == NULL)
@@ -64,16 +64,23 @@
 
 	ifp = rt->rt_ifp;
 	tdev = TOEDEV(ifp);
-	if (tdev == NULL)
-		return (EINVAL);
-
-	if (tdev->tod_can_offload(tdev, so) == 0)
-		return (EINVAL);
-
+	if (tdev == NULL) {
+		error = EINVAL;
+		goto fail;
+	}
+	
+	if (tdev->tod_can_offload(tdev, so) == 0) {
+		error = EINVAL;
+		goto fail;
+	}
+	
 	if ((error = tdev->tod_connect(tdev, so, rt, nam)))
-		return (error);
-
+		goto fail;
+	
 	return (0);
+fail:
+	RTFREE(rt);
+	return (error);
 }
 
 int



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