diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-30 21:05:25 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-30 21:05:25 +0000 |
commit | aecabffb8bf47ee8bf02c1fa1011ca97fc0b97d4 (patch) | |
tree | b98e63385113a140150a3a4d2b929861a089a212 | |
parent | 55a994055ff2c391aeec377dbb1e6b3c096334d2 (diff) | |
download | busybox-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.c | 11 |
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 | ||
319 | static int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator) | 316 | static int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator) |