diff --git a/1043401-Don-t-store-canonicalised-versions-of-manpath-elemen.patch b/1043401-Don-t-store-canonicalised-versions-of-manpath-elemen.patch new file mode 100644 index 0000000..0fb43c3 --- /dev/null +++ b/1043401-Don-t-store-canonicalised-versions-of-manpath-elemen.patch @@ -0,0 +1,66 @@ +From 6748c88ed5ec74ec08226b46eb16eabf0d138a0d Mon Sep 17 00:00:00 2001 +From: Jan Chaloupka +Date: Wed, 17 Sep 2014 16:03:23 +0200 +Subject: [PATCH] Don't store canonicalised versions of manpath elements + +--- + src/manp.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/src/manp.c b/src/manp.c +index 4501721..75e43f2 100644 +--- a/src/manp.c ++++ b/src/manp.c +@@ -1219,7 +1219,7 @@ void create_pathlist (const char *manp, char **mp) + /* Eliminate duplicates due to symlinks. */ + mp = mphead; + while (*mp) { +- char *target, *oldmp = NULL; ++ char *target; + char **dupcheck; + int found_dup = 0; + +@@ -1227,20 +1227,25 @@ void create_pathlist (const char *manp, char **mp) + * manpath? + */ + target = canonicalize_file_name (*mp); +- if (target) { +- oldmp = *mp; +- *mp = target; ++ if (!target) { ++ ++mp; ++ continue; + } + /* Only check up to the current list position, to keep item + * order stable across deduplication. + */ + for (dupcheck = mphead; *dupcheck && dupcheck != mp; + ++dupcheck) { +- if (!STREQ (*mp, *dupcheck)) ++ char *dupcheck_target = canonicalize_file_name ++ (*dupcheck); ++ if (!STREQ (target, dupcheck_target)) { ++ free (dupcheck_target); + continue; ++ } ++ free (dupcheck_target); + debug ("Removing duplicate manpath entry %s (%td) -> " + "%s (%td)\n", +- oldmp, mp - mphead, ++ *mp, mp - mphead, + *dupcheck, dupcheck - mphead); + free (*mp); + for (dupcheck = mp; *(dupcheck + 1); ++dupcheck) +@@ -1249,8 +1254,7 @@ void create_pathlist (const char *manp, char **mp) + found_dup = 1; + break; + } +- if (oldmp) +- free (oldmp); ++ free (target); + if (!found_dup) + ++mp; + } +-- +1.9.3 + diff --git a/man-db.spec b/man-db.spec index 9889f8f..e48880e 100644 --- a/man-db.spec +++ b/man-db.spec @@ -4,7 +4,7 @@ Summary: Tools for searching and reading man pages Name: man-db Version: 2.6.7.1 -Release: 6%{?dist} +Release: 7%{?dist} # GPLv2+ .. man-db # GPLv3+ .. gnulib License: GPLv2+ and GPLv3+ @@ -16,6 +16,7 @@ Source1: man-db.crondaily Source2: man-db.sysconfig Patch0: 1110274-Add-systemd-tmpfiles-snippet-to-clean-up-old-cat-fil.patch +Patch1: 1043401-Don-t-store-canonicalised-versions-of-manpath-elemen.patch Obsoletes: man < 2.0 Provides: man = %{version} @@ -38,6 +39,7 @@ manual pages. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %configure \ @@ -127,6 +129,10 @@ install -D -p -m 0644 init/systemd/man-db.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles. %lang(zh_CN) %{_datadir}/man/zh_CN/man*/* %changelog +* Thu Sep 18 2014 jchaloup - 2.6.7.1-7 +- resolves: #1043401 + Don't store canonicalised versions of manpath elements + * Sun Aug 17 2014 Fedora Release Engineering - 2.6.7.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild