diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-05-10 14:41:12 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-05-26 14:16:24 +0000 |
commit | ed22a255ac22d056bade9e7b3da6333dcc0d5c2d (patch) | |
tree | 06fbcec92b9bf6ce1761d0d873feb0909f09c10e | |
parent | 878a7a8ce20fefa96d991a7f3744b433ca1bbba2 (diff) | |
download | alpine_aports-ed22a255ac22d056bade9e7b3da6333dcc0d5c2d.tar.bz2 alpine_aports-ed22a255ac22d056bade9e7b3da6333dcc0d5c2d.tar.xz alpine_aports-ed22a255ac22d056bade9e7b3da6333dcc0d5c2d.zip |
main/apk-tools: fix segfault for apk info
ref #345
-rw-r--r-- | main/apk-tools/APKBUILD | 11 | ||||
-rw-r--r-- | main/apk-tools/info-segfault.patch | 22 |
2 files changed, 30 insertions, 3 deletions
diff --git a/main/apk-tools/APKBUILD b/main/apk-tools/APKBUILD index 7b36613784..65b299d94f 100644 --- a/main/apk-tools/APKBUILD +++ b/main/apk-tools/APKBUILD | |||
@@ -1,26 +1,30 @@ | |||
1 | # Maintainer: Natanael Copa <ncopa@alpinelinux.org> | 1 | # Maintainer: Natanael Copa <ncopa@alpinelinux.org> |
2 | pkgname=apk-tools | 2 | pkgname=apk-tools |
3 | pkgver=2.0.2 | 3 | pkgver=2.0.2 |
4 | pkgrel=0 | 4 | pkgrel=1 |
5 | pkgdesc="Alpine Package Keeper - package manager for alpine" | 5 | pkgdesc="Alpine Package Keeper - package manager for alpine" |
6 | subpackages="$pkgname-static" | 6 | subpackages="$pkgname-static" |
7 | depends= | 7 | depends= |
8 | makedepends="zlib-dev openssl-dev pkgconfig" | 8 | makedepends="zlib-dev openssl-dev pkgconfig" |
9 | source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2 | 9 | source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2 |
10 | info-segfault.patch | ||
10 | " | 11 | " |
11 | 12 | ||
12 | 13 | ||
13 | url="http://git.alpinelinux.org/cgit/apk-tools/" | 14 | url="http://git.alpinelinux.org/cgit/apk-tools/" |
14 | license=GPL-2 | 15 | license=GPL-2 |
15 | 16 | ||
16 | build() { | 17 | prepare() { |
17 | cd "$srcdir/$pkgname-$pkgver" | 18 | cd "$srcdir/$pkgname-$pkgver" |
18 | sed -i -e 's:-Werror::' Make.rules | 19 | sed -i -e 's:-Werror::' Make.rules |
19 | for i in ../*.patch; do | 20 | for i in ../*.patch; do |
20 | [ -f $i ] || continue | 21 | [ -f $i ] || continue |
21 | patch -p1 -i $i || return 1 | 22 | patch -p1 -i $i || return 1 |
22 | done | 23 | done |
24 | } | ||
23 | 25 | ||
26 | build() { | ||
27 | cd "$srcdir/$pkgname-$pkgver" | ||
24 | make || return 1 | 28 | make || return 1 |
25 | make static || return 1 | 29 | make static || return 1 |
26 | make DESTDIR="$pkgdir" install | 30 | make DESTDIR="$pkgdir" install |
@@ -40,4 +44,5 @@ static() { | |||
40 | "$subpkgdir"/sbin/apk.static | 44 | "$subpkgdir"/sbin/apk.static |
41 | } | 45 | } |
42 | 46 | ||
43 | md5sums="c87cb88f90eb8d7021d37e3b5386863d apk-tools-2.0.2.tar.bz2" | 47 | md5sums="c87cb88f90eb8d7021d37e3b5386863d apk-tools-2.0.2.tar.bz2 |
48 | aeab86a00119f9945edd6d3c3a8bb9c1 info-segfault.patch" | ||
diff --git a/main/apk-tools/info-segfault.patch b/main/apk-tools/info-segfault.patch new file mode 100644 index 0000000000..9479fade30 --- /dev/null +++ b/main/apk-tools/info-segfault.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | commit 87420aaf295f58847332ba3aa89691a0259baace | ||
2 | Author: Timo Teras <timo.teras@iki.fi> | ||
3 | Date: Wed May 5 08:56:06 2010 +0300 | ||
4 | |||
5 | info: fix querying of removed, but referenced packages | ||
6 | |||
7 | Check that package name has packages associated with it before | ||
8 | dereferencing the pointer. Fixes #345. | ||
9 | |||
10 | diff --git a/src/info.c b/src/info.c | ||
11 | index 7ca486c..d944fca 100644 | ||
12 | --- a/src/info.c | ||
13 | +++ b/src/info.c | ||
14 | @@ -283,7 +283,7 @@ static int info_package(struct info_ctx *ctx, struct apk_database *db, | ||
15 | |||
16 | for (i = 0; i < argc; i++) { | ||
17 | name = apk_db_query_name(db, APK_BLOB_STR(argv[i])); | ||
18 | - if (name == NULL) { | ||
19 | + if (name == NULL || name->pkgs == NULL) { | ||
20 | apk_error("Not found: %s", argv[i]); | ||
21 | return 1; | ||
22 | } | ||