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) |
