From patchwork Thu Mar 10 22:31:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Grubb X-Patchwork-Id: 51878 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4F6803858412 for ; Thu, 10 Mar 2022 22:31:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4F6803858412 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1646951519; bh=hRK5z31kyHdi3flXA6YGU04zOhzIe5ZTd7X/o5QyjhA=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=jQZlN9yLaxEs3fZE5zCRIYFvS+c9/VPZsdZ5lbKqjoq/txDOLip0HUvKxSlxWru1Q 4O6wLU27XCKkOPdkkP0Vg0OU45UtGrKXHT/5SfusTtIXmHMcExwdsG2KtiBFvptDds 2X05AfkbfMzsOqbW1BrVkQ2AjotBKoULcOvslQlQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 7F5203858C20 for ; Thu, 10 Mar 2022 22:31:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7F5203858C20 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-387-3_FBv8ceO2SpXVD0c_JgUQ-1; Thu, 10 Mar 2022 17:31:36 -0500 X-MC-Unique: 3_FBv8ceO2SpXVD0c_JgUQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 098EB1006AA5 for ; Thu, 10 Mar 2022 22:31:36 +0000 (UTC) Received: from x2.localnet (unknown [10.22.34.13]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B2382E2F1 for ; Thu, 10 Mar 2022 22:31:35 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [Patch v2] Add access function attributes to grp and shadow headers Date: Thu, 10 Mar 2022 17:31:34 -0500 Message-ID: <4708166.GXAFRqVoOG@x2> Organization: Red Hat MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Steve Grubb via Libc-alpha From: Steve Grubb Reply-To: Steve Grubb Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" This patch adds access function attributes to the re-entrant functions in grp.h and shadow headers. v2 - add missing parenthesis --- grp/grp.h | 12 ++++++++---- gshadow/gshadow.h | 12 ++++++++---- shadow/shadow.h | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) --- diff -urp glibc-2.35.9000-111-g2bbc694df2.orig/grp/grp.h glibc-2.35.9000-111-g2bbc694df2/grp/grp.h --- glibc-2.35.9000-111-g2bbc694df2.orig/grp/grp.h 2022-02-28 10:47:38.000000000 -0500 +++ glibc-2.35.9000-111-g2bbc694df2/grp/grp.h 2022-03-10 11:56:18.733069367 -0500 @@ -130,7 +130,8 @@ extern struct group *getgrnam (const cha # 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 *__r 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, st 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 *__res 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 -urp glibc-2.35.9000-111-g2bbc694df2.orig/gshadow/gshadow.h glibc-2.35.9000-111-g2bbc694df2/gshadow/gshadow.h --- glibc-2.35.9000-111-g2bbc694df2.orig/gshadow/gshadow.h 2022-02-28 10:47:38.000000000 -0500 +++ glibc-2.35.9000-111-g2bbc694df2/gshadow/gshadow.h 2022-03-10 12:10:00.417407391 -0500 @@ -108,19 +108,23 @@ extern int putsgent (const struct sgrp * 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 -urp glibc-2.35.9000-111-g2bbc694df2.orig/shadow/shadow.h glibc-2.35.9000-111-g2bbc694df2/shadow/shadow.h --- glibc-2.35.9000-111-g2bbc694df2.orig/shadow/shadow.h 2022-02-28 10:47:38.000000000 -0500 +++ glibc-2.35.9000-111-g2bbc694df2/shadow/shadow.h 2022-03-10 11:59:17.647530571 -0500 @@ -122,19 +122,23 @@ extern int putspent (const struct spwd * 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 */