Page MenuHomeFreeBSD

D7451.diff
No OneTemporary

D7451.diff

Index: head/usr.bin/xinstall/xinstall.c
===================================================================
--- head/usr.bin/xinstall/xinstall.c
+++ head/usr.bin/xinstall/xinstall.c
@@ -892,11 +892,17 @@
}
if (verbose)
(void)printf("install: %s -> %s\n", to_name, backup);
- if (rename(to_name, backup) < 0) {
+ if (unlink(backup) < 0 && errno != ENOENT) {
serrno = errno;
unlink(tempfile);
errno = serrno;
- err(EX_OSERR, "rename: %s to %s", to_name,
+ err(EX_OSERR, "unlink: %s", backup);
+ }
+ if (link(to_name, backup) < 0) {
+ serrno = errno;
+ unlink(tempfile);
+ errno = serrno;
+ err(EX_OSERR, "link: %s to %s", to_name,
backup);
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 2, 12:42 PM (21 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34576937
Default Alt Text
D7451.diff (713 B)

Event Timeline