aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2006-09-30 21:05:25 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2006-09-30 21:05:25 +0000
commitaecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4 (patch)
treeb98e63385113a140150a3a4d2b929861a089a212
parent55a994055ff2c391aeec377dbb1e6b3c096334d2 (diff)
downloadbusybox-w32-aecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4.tar.gz
busybox-w32-aecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4.tar.bz2
busybox-w32-aecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4.zip
dpkg: fix use-after-free (bug 939)
-rw-r--r--archival/dpkg.c11
1 files 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)
304 deb_ver2++; 304 deb_ver2++;
305 } 305 }
306 result = version_compare_part(upstream_ver1, upstream_ver2); 306 result = version_compare_part(upstream_ver1, upstream_ver2);
307 if (!result)
308 /* Compare debian versions */
309 result = version_compare_part(deb_ver1, deb_ver2);
307 310
308 free(upstream_ver1); 311 free(upstream_ver1);
309 free(upstream_ver2); 312 free(upstream_ver2);
310 313 return result;
311 if (result != 0) {
312 return result;
313 }
314
315 /* Compare debian versions */
316 return version_compare_part(deb_ver1, deb_ver2);
317} 314}
318 315
319static int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator) 316static int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator)