summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install/create/perform.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pkg_install/create/perform.c')
-rw-r--r--usr.sbin/pkg_install/create/perform.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.sbin/pkg_install/create/perform.c b/usr.sbin/pkg_install/create/perform.c
index 0834ecd..bfe4ac4 100644
--- a/usr.sbin/pkg_install/create/perform.c
+++ b/usr.sbin/pkg_install/create/perform.c
@@ -214,8 +214,12 @@ pkg_perform(char **pkgs)
read_plist(&plist, pkg_in);
/* Prefix should add an @cwd to the packing list */
- if (Prefix)
- add_plist_top(&plist, PLIST_CWD, Prefix);
+ if (Prefix) {
+ char resolved_prefix[PATH_MAX];
+ if (realpath(Prefix, resolved_prefix) != 0)
+ err(EXIT_FAILURE, "couldn't resolve path for prefix: %s", Prefix);
+ add_plist_top(&plist, PLIST_CWD, resolved_prefix);
+ }
/* Add the origin if asked, at the top */
if (Origin)
@@ -260,7 +264,9 @@ pkg_perform(char **pkgs)
/* mark_plist(&plist); */
/* Now put the release specific items in */
- add_plist(&plist, PLIST_CWD, ".");
+ if (!Prefix) {
+ add_plist(&plist, PLIST_CWD, ".");
+ }
write_file(COMMENT_FNAME, Comment);
add_plist(&plist, PLIST_IGNORE, NULL);
add_plist(&plist, PLIST_FILE, COMMENT_FNAME);
OpenPOWER on IntegriCloud