Thread (1 message) 1 message, 1 author, 2015-08-24

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

From: Zeng Linggang <hidden>
Date: 2015-08-24 10:19:53
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

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 <redacted>
---
 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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help