summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-05-01 14:02:10 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2012-05-01 14:02:10 +0000
commit67daccc73afd610030cc6710c64683da548ece5c (patch)
tree94f268442bb2e8a5ba0e83387738f027bfe358cd
parent39497978865c49fd42b63379b93f2bca58518b9e (diff)
downloadaports-67daccc73afd610030cc6710c64683da548ece5c.tar.bz2
aports-67daccc73afd610030cc6710c64683da548ece5c.tar.xz
main/apk-tools: fix for protected_paths.d
-rw-r--r--main/apk-tools/0001-db-strip-leading-and-trailing-slashes-from-protected.patch30
-rw-r--r--main/apk-tools/0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch56
-rw-r--r--main/apk-tools/APKBUILD8
3 files changed, 92 insertions, 2 deletions
diff --git a/main/apk-tools/0001-db-strip-leading-and-trailing-slashes-from-protected.patch b/main/apk-tools/0001-db-strip-leading-and-trailing-slashes-from-protected.patch
new file mode 100644
index 000000000..8f11204be
--- /dev/null
+++ b/main/apk-tools/0001-db-strip-leading-and-trailing-slashes-from-protected.patch
@@ -0,0 +1,30 @@
+From 38c1e65afbb334af0107c6bdd5362303473d866f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 1 May 2012 14:30:06 +0300
+Subject: [PATCH 1/2] db: strip leading and trailing slashes from protected
+ path spec
+
+---
+ src/database.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/database.c b/src/database.c
+index 26774be..bcc707f 100644
+--- a/src/database.c
++++ b/src/database.c
+@@ -1181,6 +1181,12 @@ static int add_protected_path(void *ctx, apk_blob_t blob)
+ break;
+ }
+
++ /* skip leading and trailing path separators */
++ while (blob.len && blob.ptr[0] == '/')
++ blob.ptr++, blob.len--;
++ while (blob.len && blob.ptr[blob.len-1] == '/')
++ blob.len--;
++
+ *apk_protected_path_array_add(&db->protected_paths) = (struct apk_protected_path) {
+ .relative_pattern = apk_blob_cstr(blob),
+ .protected = protected,
+--
+1.7.10
+
diff --git a/main/apk-tools/0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch b/main/apk-tools/0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch
new file mode 100644
index 000000000..84989a751
--- /dev/null
+++ b/main/apk-tools/0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch
@@ -0,0 +1,56 @@
+From c9a43a14697fa955f31e495a8b03a523975ad285 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 1 May 2012 15:40:31 +0300
+Subject: [PATCH 2/2] audit: apply protected_paths.d masks to individual files
+
+---
+ src/audit.c | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/src/audit.c b/src/audit.c
+index 071ff4d..03f977b 100644
+--- a/src/audit.c
++++ b/src/audit.c
+@@ -14,6 +14,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <dirent.h>
++#include <fnmatch.h>
+ #include <sys/stat.h>
+ #include "apk_applet.h"
+ #include "apk_database.h"
+@@ -199,14 +200,28 @@ recurse_check:
+ atctx->pathlen--;
+ } else {
+ struct apk_db_file *dbf;
++ struct apk_protected_path_array *ppaths = dbd->protected_paths;
++ int i, protected = dbd->protected, symlinks_only = dbd->symlinks_only;
++
++ /* inherit file's protection mask */
++ for (i = 0; i < ppaths->num; i++) {
++ struct apk_protected_path *ppath = &ppaths->item[i];
++ char *slash = strchr(ppath->relative_pattern, '/');
++ if (slash == NULL) {
++ if (fnmatch(ppath->relative_pattern, name, FNM_PATHNAME) != 0)
++ continue;
++ protected = ppath->protected;
++ symlinks_only = ppath->symlinks_only;
++ }
++ }
+
+ if (actx->mode == MODE_BACKUP) {
+- if (!dbd->protected)
++ if (!protected)
+ goto done;
+- if (dbd->symlinks_only && !S_ISLNK(fi.mode))
++ if (symlinks_only && !S_ISLNK(fi.mode))
+ goto done;
+ } else {
+- if (dbd->protected)
++ if (protected)
+ goto done;
+ }
+
+--
+1.7.10
+
diff --git a/main/apk-tools/APKBUILD b/main/apk-tools/APKBUILD
index 4eabd16fc..bd3f54254 100644
--- a/main/apk-tools/APKBUILD
+++ b/main/apk-tools/APKBUILD
@@ -1,12 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apk-tools
pkgver=2.3.1
-pkgrel=0
+pkgrel=1
pkgdesc="Alpine Package Keeper - package manager for alpine"
subpackages="$pkgname-static lua-apk:luaapk"
depends=
makedepends="zlib-dev openssl-dev lua-dev"
source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2
+ 0001-db-strip-leading-and-trailing-slashes-from-protected.patch
+ 0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch
"
url="http://git.alpinelinux.org/cgit/apk-tools/"
@@ -58,4 +60,6 @@ luaapk() {
mv "$pkgdir"/usr/lib "$subpkgdir"/usr/lib/
}
-md5sums="e343935cc2680a42f3da0f442045f046 apk-tools-2.3.1.tar.bz2"
+md5sums="e343935cc2680a42f3da0f442045f046 apk-tools-2.3.1.tar.bz2
+cc7c61312f403280dcb4c04eca53df81 0001-db-strip-leading-and-trailing-slashes-from-protected.patch
+1156d61cd9ea475ebac209e1dec1175f 0002-audit-apply-protected_paths.d-masks-to-individual-fi.patch"