[PATCH] getspnam.3: ATTRIBUTES: Note functions that are/aren't thread-safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux