Page MenuHomeFreeBSD

D48990.id150958.diff
No OneTemporary

D48990.id150958.diff

diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -3857,7 +3857,7 @@
struct vnode *oldvp, *nextvp, *vp;
struct vattr vattr;
struct nameidata nd;
- int error, i, flags, oflags, cmode;
+ int error, i, flags, oflags, cmode, chosen = -1;
char ch;
struct timespec lasttime;
@@ -3883,6 +3883,7 @@
vp = nd.ni_vp;
NDFREE_PNBUF(&nd);
if ((flags & O_CREAT) == O_CREAT) {
+ chosen = i;
nextvp = vp;
break;
}
@@ -3902,11 +3903,19 @@
oldvp = vp;
VOP_UNLOCK(oldvp);
lasttime = vattr.va_mtime;
+ chosen = i;
} else {
vnode_close_locked(td, vp);
}
}
+ if (chosen != -1) {
+ ch = name[indexpos + indexlen];
+ (void)snprintf(name + indexpos, indexlen + 1, "%.*u", indexlen,
+ chosen);
+ name[indexpos + indexlen] = ch;
+ }
+
if (oldvp != NULL) {
if (nextvp == NULL) {
if ((td->td_proc->p_flag & P_SUGID) != 0) {

File Metadata

Mime Type
text/plain
Expires
Mon, May 18, 11:40 PM (9 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33276887
Default Alt Text
D48990.id150958.diff (934 B)

Event Timeline