aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Grubb <sgrubb@redhat.com>2022-03-10 17:31:34 -0500
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2022-03-14 20:02:30 +0530
commita35b8b225da4d3cf4bd81af3808f2ec50db003ce (patch)
treed5bef55cbec985fd28f85d49c322409eca4ffbe3
parent70f021e66ae73a99bff9bcc5b71eefb63fc74320 (diff)
downloadglibc-a35b8b225da4d3cf4bd81af3808f2ec50db003ce.zip
glibc-a35b8b225da4d3cf4bd81af3808f2ec50db003ce.tar.gz
glibc-a35b8b225da4d3cf4bd81af3808f2ec50db003ce.tar.bz2
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>
-rw-r--r--grp/grp.h12
-rw-r--r--gshadow/gshadow.h12
-rw-r--r--shadow/shadow.h12
3 files changed, 24 insertions, 12 deletions
diff --git a/grp/grp.h b/grp/grp.h
index db32f89..bd3f601 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 66d6d3b..170df5f 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 b29bcc4..649691b 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 */