The function ctermid() is thread safe with exceptions.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The example of a portable version of timegm() uses the string
returned by getenv() after calling setenv() on the same
environment variable. The tz string may be invalid as per
getenv.3:
"The string pointed to by the return value of getenv()
may be statically allocated, and can be modified by a
subsequent call to getenv(), putenv(3), setenv(3), or
unsetenv(3)."
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
During the review of static analysis results, we discovered a
functional, but non-portable, use of execve(). For example:
char *cmd[] = { "/path/to/some/file", NULL };
execve(cmd[0], cmd, NULL);
The call succeeds. Yet, the static analysis tool (rightly)
pointed out that envp could be dereferenced. But digging into
glibc and the kernel, it appears that like argv, envp when NULL
is treated as if it were an empty list.
So, to clear things up, I'm submitting this patch to update the
man page to indicate that envp is treated like argv.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The function mbrtowc() is thread safe with exceptions.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions abs(), labs(), llabs() and imaxabs() are
thread-safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions ferror(), clearerr(), feof() and fileno() are
thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The function tmpnam() is thread safe with exceptions.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The function mbrlen() is thread safe with exceptions.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions getusershell(), setusershell() and endusershell()
are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions ether_aton() and ether_ntoa() are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The function getlogin() is not thread safe.
The function cuserid() is thread-safe with exceptions.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions rexec() and rexec_af() are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions __fbufsize(), __fpending(), __fpurge() and
__fsetlocking() are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions re_comp() and re_exec() are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions drand48(), erand48(), lrand48(), nrand48(),
mrand48(), jrand48(), srand48(), seed48() and lcong48() are
not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The functions encrypt() and setkey() are not thread safe.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com