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
0a15e5d30d
commit
d902fa0fa4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=240476
@ -41,7 +41,7 @@ extern char *PkgAddCmd;
|
|||||||
extern char FirstPen[];
|
extern char FirstPen[];
|
||||||
extern add_mode_t AddMode;
|
extern add_mode_t AddMode;
|
||||||
|
|
||||||
int make_hierarchy(char *);
|
int make_hierarchy(char *, Boolean);
|
||||||
void extract_plist(const char *, Package *);
|
void extract_plist(const char *, Package *);
|
||||||
void apply_perms(const char *, const char *);
|
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);
|
printf("extract: CWD to %s\n", p->name);
|
||||||
PUSHOUT(Directory);
|
PUSHOUT(Directory);
|
||||||
if (strcmp(p->name, ".")) {
|
if (strcmp(p->name, ".")) {
|
||||||
if (!Fake && make_hierarchy(p->name) == FAIL) {
|
if (!Fake && make_hierarchy(p->name, TRUE) == FAIL) {
|
||||||
cleanup(0);
|
cleanup(0);
|
||||||
errx(2, "%s: unable to cwd to '%s'", __func__, p->name);
|
errx(2, "%s: unable to cwd to '%s'", __func__, p->name);
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
make_hierarchy(char *dir)
|
make_hierarchy(char *dir, Boolean set_perm)
|
||||||
{
|
{
|
||||||
char *cp1, *cp2;
|
char *cp1, *cp2;
|
||||||
|
|
||||||
@ -55,7 +55,8 @@ make_hierarchy(char *dir)
|
|||||||
*cp2 = '/';
|
*cp2 = '/';
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
apply_perms(NULL, dir);
|
if (set_perm)
|
||||||
|
apply_perms(NULL, dir);
|
||||||
}
|
}
|
||||||
/* Put it back */
|
/* Put it back */
|
||||||
if (cp2) {
|
if (cp2) {
|
||||||
|
@ -511,7 +511,7 @@ pkg_do(char *pkg)
|
|||||||
zapLogDir = 1;
|
zapLogDir = 1;
|
||||||
if (Verbose)
|
if (Verbose)
|
||||||
printf("Attempting to record package into %s..\n", LogDir);
|
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!",
|
warnx("can't record package into '%s', you're on your own!",
|
||||||
LogDir);
|
LogDir);
|
||||||
bzero(LogDir, FILENAME_MAX);
|
bzero(LogDir, FILENAME_MAX);
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
* Version of the package tools - increase whenever you make a change
|
* Version of the package tools - increase whenever you make a change
|
||||||
* in the code that is not cosmetic only.
|
* 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 PKG_WRAPCONF_FNAME "/var/db/pkg_install.conf"
|
||||||
#define main(argc, argv) real_main(argc, argv)
|
#define main(argc, argv) real_main(argc, argv)
|
||||||
|
Loading…
Reference in New Issue
Block a user