From a35b8b225da4d3cf4bd81af3808f2ec50db003ce Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Thu, 10 Mar 2022 17:31:34 -0500 Subject: [PATCH] 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 --- grp/grp.h | 12 ++++++++---- gshadow/gshadow.h | 12 ++++++++---- shadow/shadow.h | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/grp/grp.h b/grp/grp.h index db32f897ec..bd3f6010ed 100644 --- a/grp/grp.h +++ b/grp/grp.h @@ -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 */ diff --git a/gshadow/gshadow.h b/gshadow/gshadow.h index 66d6d3b883..170df5f68a 100644 --- a/gshadow/gshadow.h +++ b/gshadow/gshadow.h @@ -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 diff --git a/shadow/shadow.h b/shadow/shadow.h index b29bcc41d0..649691b63c 100644 --- a/shadow/shadow.h +++ b/shadow/shadow.h @@ -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 */