diff options
author | Robert Mustacchi <rm@joyent.com> | 2014-04-02 18:04:36 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2014-04-02 18:11:26 +0000 |
commit | 98c66d68005665426f29c599ea0fe1b4e92712e8 (patch) | |
tree | 4ff66513c6d7f9a24914e77536a9f4f4be6a0fda | |
parent | 666ed05bdafe19726bbb92d9754ba35e088051a0 (diff) | |
download | illumos-joyent-98c66d68005665426f29c599ea0fe1b4e92712e8.tar.gz |
OS-2846 writing NT_FDINFO leaks vnode
-rw-r--r-- | usr/src/uts/common/exec/elf/elf_notes.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/common/exec/elf/elf_notes.c b/usr/src/uts/common/exec/elf/elf_notes.c index 51db603177..81ce155db0 100644 --- a/usr/src/uts/common/exec/elf/elf_notes.c +++ b/usr/src/uts/common/exec/elf/elf_notes.c @@ -26,7 +26,7 @@ /* * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. - * Copyright (c) 2013, Joyent, Inc. All rights reserved. + * Copyright (c) 2014, Joyent, Inc. All rights reserved. */ #include <sys/types.h> @@ -405,10 +405,13 @@ write_elfnotes(proc_t *p, int sig, vnode_t *vp, offset_t offset, error = elfnote(vp, &offset, NT_FDINFO, sizeof (fdinfo), &fdinfo, rlimit, credp); if (error) { + VN_RELE(vroot); goto done; } } + VN_RELE(vroot); + #if defined(__i386) || defined(__i386_COMPAT) mutex_enter(&p->p_ldtlock); ssdsize = prnldt(p) * sizeof (struct ssd); |