[packages/poldek] Ignore paths longer than 255 characters (lp#1288989). Release 7

megabajt megabajt at pld-linux.org
Thu Mar 13 23:43:12 CET 2014


commit 5d6ede248c1e05b26a4938d4f13665b187605e0f
Author: Marcin Banasiak <marcin.banasiak at gmail.com>
Date:   Thu Mar 13 23:42:42 2014 +0100

    Ignore paths longer than 255 characters (lp#1288989). Release 7

 poldek-ignore-too-long-paths.patch | 63 ++++++++++++++++++++++++++++++++++++++
 poldek.spec                        |  4 ++-
 2 files changed, 66 insertions(+), 1 deletion(-)
---
diff --git a/poldek.spec b/poldek.spec
index 952dd67..8817c09 100644
--- a/poldek.spec
+++ b/poldek.spec
@@ -22,7 +22,7 @@
 %endif
 %define		ver_rpm		5.4.10
 
-%define		rel	6
+%define		rel	7
 Summary:	RPM packages management helper tool
 Summary(hu.UTF-8):	RPM csomagkezelést segítő eszköz
 Summary(pl.UTF-8):	Pomocnicze narzędzie do zarządzania pakietami RPM
@@ -50,6 +50,7 @@ Patch0:		%{name}-size-type.patch
 Patch1:		%{name}-Os-fail-workaround.patch
 Patch2:		%{name}-config.patch
 Patch3:		at-char-completion.patch
+Patch4:		%{name}-ignore-too-long-paths.patch
 URL:		http://poldek.pld-linux.org/
 BuildRequires:	%{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
 BuildRequires:	autoconf
@@ -218,6 +219,7 @@ Moduły języka Python dla poldka.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 %{__rm} m4/libtool.m4 m4/lt*.m4
 
diff --git a/poldek-ignore-too-long-paths.patch b/poldek-ignore-too-long-paths.patch
new file mode 100644
index 0000000..9c25d54
--- /dev/null
+++ b/poldek-ignore-too-long-paths.patch
@@ -0,0 +1,63 @@
+commit 31658355f3937b67f265e45f70eccfe7af668a70
+Author: Marcin Banasiak <marcin.banasiak at gmail.com>
+Date:   Sun Mar 9 22:16:00 2014 +0100
+
+    Ignore paths longer than 255 characters (lp#1288989)
+    
+    Index format used by poldek prevents us from storing paths longer than
+    255 characters. Changing this behaviour would break backward
+    compatibility, so simply ignore them.
+
+diff --git a/pkgdir/pkgdir_dirindex.c b/pkgdir/pkgdir_dirindex.c
+index abfd05c..3437ee7 100644
+--- a/pkgdir/pkgdir_dirindex.c
++++ b/pkgdir/pkgdir_dirindex.c
+@@ -136,6 +136,9 @@ void add_to_path_index(tn_hash *path_index, const char *path, uint32_t package_n
+     unsigned khash = 0;
+     tn_array *keys;
+     
++    if (strlen(path) > 255)
++	return;
++    
+     if ((keys = n_hash_get_ex(path_index, path, &klen, &khash)) == NULL) {
+         keys = n_array_new(16, free, (tn_fn_cmp)strcmp);
+         n_hash_insert_ex(path_index, path, klen, khash, keys);
+diff --git a/pm/rpm/rpm_pkg_ld.c b/pm/rpm/rpm_pkg_ld.c
+index 5ae167a..3983693 100644
+--- a/pm/rpm/rpm_pkg_ld.c
++++ b/pm/rpm/rpm_pkg_ld.c
+@@ -259,8 +259,9 @@ static int valid_fname(const char *fname, mode_t mode, const char *pkgname)
+ #endif     
+ 
+     if (strlen(fname) > 255) {
+-        logn(LOGERR, _("%s: %s \"%s\" longer than 255 bytes"),
+-            pkgname, S_ISDIR(mode) ? _("dirname") : _("filename"), fname);
++	if (poldek_VERBOSE > 1)
++    	    logn(LOGWARN, _("%s: skipped %s \"%s\" longer than 255 bytes"),
++        	pkgname, S_ISDIR(mode) ? _("dirname") : _("filename"), fname);
+         return 0;
+     }
+     
+@@ -335,8 +336,11 @@ int pm_rpm_ldhdr_fl(tn_alloc *na, tn_tuple **fl,
+         struct pkgfl_ent *flent;
+ 
+         fentdirs_items[i] = 0;
+-        if (!valid_fname(dirs[i], 0, pkgname))
+-            nerr++;
++        if (!valid_fname(dirs[i], 0, pkgname)) {
++    	    skipdirs[i] = NULL;
++    	    fentdirs[i] = NULL;
++            continue;
++        }
+ 
+         if (which != PKGFL_ALL) {
+             int is_depdir;
+@@ -374,7 +378,7 @@ int pm_rpm_ldhdr_fl(tn_alloc *na, tn_tuple **fl,
+         int len;
+ 
+         if (!valid_fname(names[i], modes ? modes[i] : 0, pkgname))
+-            nerr++;
++            continue;
+         
+         msg(5, "  %d: %s %s/%s \n", i, skipdirs[j] ? "add " : "skip",
+             dirs[j], names[i]);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/poldek.git/commitdiff/5d6ede248c1e05b26a4938d4f13665b187605e0f



More information about the pld-cvs-commit mailing list