This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: manual: cuserid is mtasurace if not passed a string

On 11/07/2014 03:19 AM, Alexandre Oliva wrote:
> During the MTASC-Safety code review, in my analysis of cuserid, I failed
> to notice the use of the static buffer in case a buffer is not passed as
> an argument.  Oops.  This patch fixes the error.  Ok to install?

I'm happy to see this getting continued maintenance and review. Thanks for
doing this! I think that if a patch, like that for ctermid, is ACK'd that
the manual changes should be automatically OK. In this case for cuserid
I do think it's useful to have a review.

> From: Alexandre Oliva <>
> for  ChangeLog
> 	* manual/users.texi (cuserid): Fix MT-Safety note for the case
> 	of not passing it a buffer.
> 	Reported by Peng Haitao.
> ---
>  manual/users.texi |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> diff --git a/manual/users.texi b/manual/users.texi
> index a14a256..e8f0f3b 100644
> --- a/manual/users.texi
> +++ b/manual/users.texi
> @@ -927,8 +927,9 @@ this function or to @code{cuserid}.
>  @comment stdio.h
>  @comment POSIX.1
>  @deftypefun {char *} cuserid (char *@var{string})
> -@safety{@prelim{}@mtsafe{@mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @aculock{} @acsfd{} @acsmem{}}}
> -@c cuserid @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem
> +@safety{@prelim{}@mtunsafe{@mtasurace{:cuserid/!string} @mtslocale{}}@asunsafe{@ascudlopen{} @ascuplugin{} @ascuheap{} @asulock{}}@acunsafe{@acucorrupt{} @aculock{} @acsfd{} @acsmem{}}}

Do we document what `!string` means?

Doesn't this violate the description for `race` which says it
is a colon followed by the argument name?

Doesn't the above produce "MT-Unsafe race:cuserid/!string"?

> +@c cuserid @mtasurace:cuserid/!string @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem
> +@c   if string is NULL, cuserid will overwrite and return a static buffer
>  @c  geteuid dup ok
>  @c  getpwuid_r dup @mtslocale @ascudlopen @ascuplugin @ascuheap @asulock @acucorrupt @aculock @acsfd @acsmem
>  @c  strncpy dup ok


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]