summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install/lib
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2012-09-18 22:09:23 +0000
committerbapt <bapt@FreeBSD.org>2012-09-18 22:09:23 +0000
commitc572b3700b5f5a886c712abe51a0c11e0694893e (patch)
tree69719e7f7b03fdbfee3b9405328a678f568189c8 /usr.sbin/pkg_install/lib
parent5005c75c5d4c3cea0b6150e4a8c7a1d2f928c052 (diff)
downloadFreeBSD-src-c572b3700b5f5a886c712abe51a0c11e0694893e.zip
FreeBSD-src-c572b3700b5f5a886c712abe51a0c11e0694893e.tar.gz
if a file in plist starts with / then do not prefix it with "prefix" [1]
pkg info -g returns 1 if a file mismatch [2] flush stdout in pkg info -g [3] clean up quiet mode (-q | --quiet) output of pkg_version(1) [4] fix missing error call in uname check added to pkg_version(1) [5] fix pkg_add(1) fails to install with -C from bad path [6] only resolve path from pkg_add(1) -p if the given prefix do not start with a '/' [7] PR: bin/13128 [1] bin/139015 [2] bin/113702 [3] bin/142570 [4] bin/146857 [5] bin/157543 [6] Submitted by: cy [1] Anton Yuzhaninov <citrin@citrin.ru> [2] Ighighi <ighighi@gmail.com> [3] "N.J. Mann" <njm@njm.me.uk> [4] gcooper [5] David Naylor <naylor.b.david@gmail.com> [6] netchild [7] MFC after: 2 weeks
Diffstat (limited to 'usr.sbin/pkg_install/lib')
-rw-r--r--usr.sbin/pkg_install/lib/lib.h2
-rw-r--r--usr.sbin/pkg_install/lib/plist.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/usr.sbin/pkg_install/lib/lib.h b/usr.sbin/pkg_install/lib/lib.h
index e368b80..a6935ad 100644
--- a/usr.sbin/pkg_install/lib/lib.h
+++ b/usr.sbin/pkg_install/lib/lib.h
@@ -99,7 +99,7 @@
* Version of the package tools - increase whenever you make a change
* in the code that is not cosmetic only.
*/
-#define PKG_INSTALL_VERSION 20120913
+#define PKG_INSTALL_VERSION 20120918
#define PKG_WRAPCONF_FNAME "/var/db/pkg_install.conf"
#define main(argc, argv) real_main(argc, argv)
diff --git a/usr.sbin/pkg_install/lib/plist.c b/usr.sbin/pkg_install/lib/plist.c
index a1b5c55..bce6d04 100644
--- a/usr.sbin/pkg_install/lib/plist.c
+++ b/usr.sbin/pkg_install/lib/plist.c
@@ -458,7 +458,10 @@ delete_package(Boolean ign_err, Boolean nukedirs, Package *pkg)
case PLIST_FILE:
last_file = p->name;
- sprintf(tmp, "%s/%s", Where, p->name);
+ if (*p->name == '/')
+ strlcpy(tmp, p->name, FILENAME_MAX);
+ else
+ sprintf(tmp, "%s/%s", Where, p->name);
if (isdir(tmp) && fexists(tmp) && !issymlink(tmp)) {
warnx("cannot delete specified file '%s' - it is a directory!\n"
"this packing list is incorrect - ignoring delete request", tmp);
OpenPOWER on IntegriCloud