[PATCH] Add some missing access function attributes
Siddhesh Poyarekar
siddhesh@gotplt.org
Thu Mar 10 00:25:53 GMT 2022
On 10/03/2022 00:06, Steve Grubb via Libc-alpha wrote:
> This patch adds some missing access function attributes to getrandom /
> getentropy and several functions in sys/xattr.h
>
> ---
> misc/sys/xattr.h | 22 +++++++++++++---------
> stdlib/sys/random.h | 6 ++++--
> 2 files changed, 17 insertions(+), 11 deletions(-)
LGTM.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
I'll push this shortly.
Thanks,
Siddhesh
> ---
> diff -urp glibc-2.35.9000-111-g2bbc694df2.orig/misc/sys/xattr.h glibc-2.35.9000-111-g2bbc694df2/misc/sys/xattr.h
> --- glibc-2.35.9000-111-g2bbc694df2.orig/misc/sys/xattr.h 2022-02-28 10:47:38.000000000 -0500
> +++ glibc-2.35.9000-111-g2bbc694df2/misc/sys/xattr.h 2022-03-09 12:44:01.132047363 -0500
> @@ -40,52 +40,56 @@ enum
> is SIZE bytes long). Return 0 on success, -1 for errors. */
> extern int setxattr (const char *__path, const char *__name,
> const void *__value, size_t __size, int __flags)
> - __THROW;
> + __THROW __attr_access ((__read_only__, 3, 4));
>
> /* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
> SIZE bytes long), not following symlinks for the last pathname component.
> Return 0 on success, -1 for errors. */
> extern int lsetxattr (const char *__path, const char *__name,
> const void *__value, size_t __size, int __flags)
> - __THROW;
> + __THROW __attr_access ((__read_only__, 3, 4));
>
> /* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
> bytes long). Return 0 on success, -1 for errors. */
> extern int fsetxattr (int __fd, const char *__name, const void *__value,
> - size_t __size, int __flags) __THROW;
> + size_t __size, int __flags)
> + __THROW __attr_access ((__read_only__, 3, 4));
>
> /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
> SIZE bytes long). Return 0 on success, -1 for errors. */
> extern ssize_t getxattr (const char *__path, const char *__name,
> - void *__value, size_t __size) __THROW;
> + void *__value, size_t __size)
> + __THROW __attr_access ((__write_only__, 3, 4));
>
> /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
> SIZE bytes long), not following symlinks for the last pathname component.
> Return 0 on success, -1 for errors. */
> extern ssize_t lgetxattr (const char *__path, const char *__name,
> - void *__value, size_t __size) __THROW;
> + void *__value, size_t __size)
> + __THROW __attr_access ((__write_only__, 3, 4));
>
> /* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
> bytes long). Return 0 on success, -1 for errors. */
> extern ssize_t fgetxattr (int __fd, const char *__name, void *__value,
> - size_t __size) __THROW;
> + size_t __size)
> + __THROW __attr_access ((__write_only__, 3, 4));
>
> /* List attributes of the file pointed to by PATH into the user-supplied
> buffer LIST (which is SIZE bytes big). Return 0 on success, -1 for
> errors. */
> extern ssize_t listxattr (const char *__path, char *__list, size_t __size)
> - __THROW;
> + __THROW __attr_access ((__write_only__, 2, 3));
>
> /* List attributes of the file pointed to by PATH into the user-supplied
> buffer LIST (which is SIZE bytes big), not following symlinks for the
> last pathname component. Return 0 on success, -1 for errors. */
> extern ssize_t llistxattr (const char *__path, char *__list, size_t __size)
> - __THROW;
> + __THROW __attr_access ((__write_only__, 2, 3));
>
> /* List attributes of the file descriptor FD into the user-supplied buffer
> LIST (which is SIZE bytes big). Return 0 on success, -1 for errors. */
> extern ssize_t flistxattr (int __fd, char *__list, size_t __size)
> - __THROW;
> + __THROW __attr_access ((__write_only__, 2, 3));
>
> /* Remove the attribute NAME from the file pointed to by PATH. Return 0
> on success, -1 for errors. */
> diff -urp glibc-2.35.9000-111-g2bbc694df2.orig/stdlib/sys/random.h glibc-2.35.9000-111-g2bbc694df2/stdlib/sys/random.h
> --- glibc-2.35.9000-111-g2bbc694df2.orig/stdlib/sys/random.h 2022-02-28 10:47:38.000000000 -0500
> +++ glibc-2.35.9000-111-g2bbc694df2/stdlib/sys/random.h 2022-03-09 12:39:48.911875369 -0500
> @@ -32,11 +32,13 @@ __BEGIN_DECLS
> /* Write LENGTH bytes of randomness starting at BUFFER. Return the
> number of bytes written, or -1 on error. */
> ssize_t getrandom (void *__buffer, size_t __length,
> - unsigned int __flags) __wur;
> + unsigned int __flags) __wur
> + __attr_access ((__write_only__, 1, 2));
>
> /* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on
> success or -1 on error. */
> -int getentropy (void *__buffer, size_t __length) __wur;
> +int getentropy (void *__buffer, size_t __length) __wur
> + __attr_access ((__write_only__, 1, 2));
>
> __END_DECLS
>
>
>
>
More information about the Libc-alpha
mailing list