Page MenuHomeFreeBSD

D37618.id.diff
No OneTemporary

D37618.id.diff

diff --git a/sbin/restore/dirs.c b/sbin/restore/dirs.c
--- a/sbin/restore/dirs.c
+++ b/sbin/restore/dirs.c
@@ -646,6 +646,11 @@
}
cp = myname(ep);
if (!Nflag) {
+ if (myuid != 0)
+ (void) chown(cp, myuid, node.gid);
+ else
+ (void) chown(cp, node.uid, node.gid);
+ (void) chmod(cp, node.mode);
if (node.extsize > 0) {
if (bufsize >= node.extsize) {
set_extattr(-1, cp, buf, node.extsize, SXA_FILE);
@@ -654,11 +659,6 @@
"extended attributes for ", cp);
}
}
- if (myuid != 0)
- (void) chown(cp, myuid, node.gid);
- else
- (void) chown(cp, node.uid, node.gid);
- (void) chmod(cp, node.mode);
utimensat(AT_FDCWD, cp, node.ctimep, 0);
utimensat(AT_FDCWD, cp, node.mtimep, 0);
(void) chflags(cp, node.flags);
diff --git a/sbin/restore/tape.c b/sbin/restore/tape.c
--- a/sbin/restore/tape.c
+++ b/sbin/restore/tape.c
@@ -628,10 +628,10 @@
return (GOOD);
}
if (linkit(lnkbuf, name, SYMLINK) == GOOD) {
- if (extsize > 0)
- set_extattr(-1, name, buf, extsize, SXA_LINK);
(void) lchown(name, uid, gid);
(void) lchmod(name, mode);
+ if (extsize > 0)
+ set_extattr(-1, name, buf, extsize, SXA_LINK);
(void) utimensat(AT_FDCWD, name, ctimep,
AT_SYMLINK_NOFOLLOW);
(void) utimensat(AT_FDCWD, name, mtimep,
@@ -655,6 +655,8 @@
skipfile();
return (FAIL);
}
+ (void) chown(name, uid, gid);
+ (void) chmod(name, mode);
if (extsize == 0) {
skipfile();
} else {
@@ -662,8 +664,6 @@
getfile(xtrnull, xtrattr, xtrnull);
set_extattr(-1, name, buf, extsize, SXA_FILE);
}
- (void) chown(name, uid, gid);
- (void) chmod(name, mode);
(void) utimensat(AT_FDCWD, name, ctimep, 0);
(void) utimensat(AT_FDCWD, name, mtimep, 0);
(void) chflags(name, flags);
@@ -685,6 +685,8 @@
skipfile();
return (FAIL);
}
+ (void) chown(name, uid, gid);
+ (void) chmod(name, mode);
if (extsize == 0) {
skipfile();
} else {
@@ -692,8 +694,6 @@
getfile(xtrnull, xtrattr, xtrnull);
set_extattr(-1, name, buf, extsize, SXA_FILE);
}
- (void) chown(name, uid, gid);
- (void) chmod(name, mode);
(void) utimensat(AT_FDCWD, name, ctimep, 0);
(void) utimensat(AT_FDCWD, name, mtimep, 0);
(void) chflags(name, flags);
@@ -714,12 +714,12 @@
skipfile();
return (FAIL);
}
+ (void) fchown(ofile, uid, gid);
+ (void) fchmod(ofile, mode);
buf = setupextattr(extsize);
getfile(xtrfile, xtrattr, xtrskip);
if (extsize > 0)
set_extattr(ofile, name, buf, extsize, SXA_FD);
- (void) fchown(ofile, uid, gid);
- (void) fchmod(ofile, mode);
(void) futimens(ofile, ctimep);
(void) futimens(ofile, mtimep);
(void) fchflags(ofile, flags);

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 25, 12:46 AM (48 m, 46 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37180636
Default Alt Text
D37618.id.diff (2 KB)

Event Timeline