Add access function attributes to grp and shadow headers

This patch adds access function attributes to the re-entrant functions
in grp.h and shadow headers.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
Steve Grubb 2022-03-10 17:31:34 -05:00 committed by Siddhesh Poyarekar
parent 70f021e66a
commit a35b8b225d
3 changed files with 24 additions and 12 deletions

View File

@ -130,7 +130,8 @@ extern struct group *getgrnam (const char *__name);
# ifdef __USE_GNU
extern int getgrent_r (struct group *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct group **__restrict __result);
struct group **__restrict __result)
__attr_access ((__write_only__, 2, 3));
# endif
/* Search for an entry with a matching group ID.
@ -139,7 +140,8 @@ extern int getgrent_r (struct group *__restrict __resultbuf,
marked with __THROW. */
extern int getgrgid_r (__gid_t __gid, struct group *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct group **__restrict __result);
struct group **__restrict __result)
__attr_access ((__write_only__, 3, 4));
/* Search for an entry with a matching group name.
@ -148,7 +150,8 @@ extern int getgrgid_r (__gid_t __gid, struct group *__restrict __resultbuf,
extern int getgrnam_r (const char *__restrict __name,
struct group *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct group **__restrict __result);
struct group **__restrict __result)
__attr_access ((__write_only__, 3, 4));
# ifdef __USE_MISC
/* Read a group entry from STREAM. This function is not standardized
@ -161,7 +164,8 @@ extern int getgrnam_r (const char *__restrict __name,
extern int fgetgrent_r (FILE *__restrict __stream,
struct group *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct group **__restrict __result);
struct group **__restrict __result)
__attr_access ((__write_only__, 3, 4));
# endif
#endif /* POSIX or reentrant */

View File

@ -108,19 +108,23 @@ extern int putsgent (const struct sgrp *__g, FILE *__stream);
or due to the implementation they are cancellation points and
therefore not marked with __THROW. */
extern int getsgent_r (struct sgrp *__result_buf, char *__buffer,
size_t __buflen, struct sgrp **__result);
size_t __buflen, struct sgrp **__result)
__attr_access ((__write_only__, 2, 3));
extern int getsgnam_r (const char *__name, struct sgrp *__result_buf,
char *__buffer, size_t __buflen,
struct sgrp **__result);
struct sgrp **__result)
__attr_access ((__write_only__, 3, 4));
extern int sgetsgent_r (const char *__string, struct sgrp *__result_buf,
char *__buffer, size_t __buflen,
struct sgrp **__result);
struct sgrp **__result)
__attr_access ((__write_only__, 3, 4));
extern int fgetsgent_r (FILE *__stream, struct sgrp *__result_buf,
char *__buffer, size_t __buflen,
struct sgrp **__result);
struct sgrp **__result)
__attr_access ((__write_only__, 3, 4));
#endif /* misc */
__END_DECLS

View File

@ -122,19 +122,23 @@ extern int putspent (const struct spwd *__p, FILE *__stream);
or due to the implementation they are cancellation points and
therefore not marked with __THROW. */
extern int getspent_r (struct spwd *__result_buf, char *__buffer,
size_t __buflen, struct spwd **__result);
size_t __buflen, struct spwd **__result)
__attr_access ((__write_only__, 2, 3));
extern int getspnam_r (const char *__name, struct spwd *__result_buf,
char *__buffer, size_t __buflen,
struct spwd **__result);
struct spwd **__result)
__attr_access ((__write_only__, 3, 4));
extern int sgetspent_r (const char *__string, struct spwd *__result_buf,
char *__buffer, size_t __buflen,
struct spwd **__result);
struct spwd **__result)
__attr_access ((__write_only__, 3, 4));
extern int fgetspent_r (FILE *__stream, struct spwd *__result_buf,
char *__buffer, size_t __buflen,
struct spwd **__result);
struct spwd **__result)
__attr_access ((__write_only__, 3, 4));
#endif /* misc */