Do not change owner, group, or mode when package database directory and
its contents are created with pkg_add(1). It may happen when the packing list contains @owner, @group, or @mode. Reported by: Donald Bostrom (dbostrom at niksun dot com) Reviewed by: portmgr (bapt)
This commit is contained in:
parent
d63ec4c4ce
commit
544c9d83bd
@ -41,7 +41,7 @@ extern char *PkgAddCmd;
|
||||
extern char FirstPen[];
|
||||
extern add_mode_t AddMode;
|
||||
|
||||
int make_hierarchy(char *);
|
||||
int make_hierarchy(char *, Boolean);
|
||||
void extract_plist(const char *, Package *);
|
||||
void apply_perms(const char *, const char *);
|
||||
|
||||
|
@ -225,7 +225,7 @@ extract_plist(const char *home, Package *pkg)
|
||||
printf("extract: CWD to %s\n", p->name);
|
||||
PUSHOUT(Directory);
|
||||
if (strcmp(p->name, ".")) {
|
||||
if (!Fake && make_hierarchy(p->name) == FAIL) {
|
||||
if (!Fake && make_hierarchy(p->name, TRUE) == FAIL) {
|
||||
cleanup(0);
|
||||
errx(2, "%s: unable to cwd to '%s'", __func__, p->name);
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ __FBSDID("$FreeBSD$");
|
||||
*/
|
||||
|
||||
int
|
||||
make_hierarchy(char *dir)
|
||||
make_hierarchy(char *dir, Boolean set_perm)
|
||||
{
|
||||
char *cp1, *cp2;
|
||||
|
||||
@ -55,7 +55,8 @@ make_hierarchy(char *dir)
|
||||
*cp2 = '/';
|
||||
return FAIL;
|
||||
}
|
||||
apply_perms(NULL, dir);
|
||||
if (set_perm)
|
||||
apply_perms(NULL, dir);
|
||||
}
|
||||
/* Put it back */
|
||||
if (cp2) {
|
||||
|
@ -511,7 +511,7 @@ pkg_do(char *pkg)
|
||||
zapLogDir = 1;
|
||||
if (Verbose)
|
||||
printf("Attempting to record package into %s..\n", LogDir);
|
||||
if (make_hierarchy(LogDir)) {
|
||||
if (make_hierarchy(LogDir, FALSE)) {
|
||||
warnx("can't record package into '%s', you're on your own!",
|
||||
LogDir);
|
||||
bzero(LogDir, FILENAME_MAX);
|
||||
|
@ -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 20120530
|
||||
#define PKG_INSTALL_VERSION 20120913
|
||||
|
||||
#define PKG_WRAPCONF_FNAME "/var/db/pkg_install.conf"
|
||||
#define main(argc, argv) real_main(argc, argv)
|
||||
|
Loading…
x
Reference in New Issue
Block a user