After research, We think * getspnam(), * getspent(), * setspent(), * endspent(), * getspent_r(), * fgetspent(), * sgetspent(), are not thread-safe. And * putspent(), * getspnam_r(), * sgetspent_r(), * lckpwdf(), * ulckpwdf(), * fgetspent_r(), are thread-safe. But, there are not markings of them in glibc document. Signed-off-by: Zeng Linggang <zenglg.jy@xxxxxxxxxxxxxx> --- man3/getspnam.3 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/man3/getspnam.3 b/man3/getspnam.3 index 43ee61c..9efd643 100644 --- a/man3/getspnam.3 +++ b/man3/getspnam.3 @@ -246,6 +246,66 @@ The include file defines the constant .B _PATH_SHADOW to the pathname of the shadow password file. +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lbw25 lb lbw30 +l l l. +Interface Attribute Value +T{ +.BR getspnam () +T} Thread safety T{ +MT-Unsafe race:getspnam locale +T} +T{ +.BR getspent () +T} Thread safety T{ +MT-Unsafe race:getspent +.br +race:spentbuf locale +T} +T{ +.BR setspent (), +.BR endspent (), +.br +.BR getspent_r () +T} Thread safety T{ +MT-Unsafe race:getspent locale +T} +T{ +.BR fgetspent () +T} Thread safety MT-Unsafe race:fgetspent +T{ +.BR sgetspent () +T} Thread safety MT-Unsafe race:sgetspent +T{ +.BR putspent (), +.BR getspnam_r (), +.br +.BR sgetspent_r () +T} Thread safety MT-Safe locale +T{ +.BR lckpwdf (), +.BR ulckpwdf (), +.br +.BR fgetspent_r () +T} Thread safety MT-Safe +.TE + +In the above table, +.I getspent +in +.I race:getspent +signifies that if any of the functions +.BR setspent (3), +.BR getspent (3), +.BR getspent_r (3), +or +.BR endspent (3) +are used in parallel in different threads of a program, +then data races could occur. .SH CONFORMING TO The shadow password database and its associated API are not specified in POSIX.1. -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html