projects
/
oweals
/
musl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0716b10
)
fix fd leak on races and cancellation in ctermid
author
Rich Felker
<dalias@aerifal.cx>
Tue, 9 Jul 2013 04:42:09 +0000
(
00:42
-0400)
committer
Rich Felker
<dalias@aerifal.cx>
Tue, 9 Jul 2013 04:42:09 +0000
(
00:42
-0400)
src/unistd/ctermid.c
patch
|
blob
|
history
diff --git
a/src/unistd/ctermid.c
b/src/unistd/ctermid.c
index 21b44ec8602206c676f94e8394f10a8bf60ff67c..c238905adae25292756d62dfb6401e66a7c700fd 100644
(file)
--- a/
src/unistd/ctermid.c
+++ b/
src/unistd/ctermid.c
@@
-4,6
+4,7
@@
#include <fcntl.h>
#include <unistd.h>
#include <limits.h>
+#include "syscall.h"
char *ctermid(char *s)
{
@@
-13,11
+14,11
@@
char *ctermid(char *s)
if (!s2) s2 = malloc(L_ctermid);
s = s2;
}
- fd = open("/dev/tty", O_WRONLY | O_NOCTTY);
+ fd = open("/dev/tty", O_WRONLY | O_NOCTTY
| O_CLOEXEC
);
if (fd < 0)
return strcpy(s, "");
if (ttyname_r(fd, s, L_ctermid))
strcpy(s, "");
-
close(
fd);
+
__syscall(SYS_close,
fd);
return s;
}