From aecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4 Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Sat, 30 Sep 2006 21:05:25 +0000
Subject: dpkg: fix use-after-free (bug 939)

---
 archival/dpkg.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/archival/dpkg.c b/archival/dpkg.c
index b26a11631..b55822460 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -304,16 +304,13 @@ static int version_compare(const unsigned int ver1, const unsigned int ver2)
 		deb_ver2++;
 	}
 	result = version_compare_part(upstream_ver1, upstream_ver2);
+	if (!result)
+		/* Compare debian versions */
+		result = version_compare_part(deb_ver1, deb_ver2);
 
 	free(upstream_ver1);
 	free(upstream_ver2);
-
-	if (result != 0) {
-		return result;
-	}
-
-	/* Compare debian versions */
-	return version_compare_part(deb_ver1, deb_ver2);
+	return result;
 }
 
 static int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator)
-- 
cgit v1.2.3-55-g6feb