1*4882a593SmuzhiyunFrom 4328f1db48ef4a0ec90a63c344c97063ade3e94a Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Martin Sebor <msebor@redhat.com> 3*4882a593SmuzhiyunDate: Thu, 8 Oct 2020 12:53:09 -0600 4*4882a593SmuzhiyunSubject: [PATCH 10/20] sunrpc: Adjust RPC function declarations to match Sun's 5*4882a593Smuzhiyun (bug 26686] 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunBuilding Glibc with the latest GCC 11 shows a number of instances 8*4882a593Smuzhiyunof the new -Warray-parameter warning designed to encourage 9*4882a593Smuzhiyunconsistency in the forms of array arguments in redeclarations of 10*4882a593Smuzhiyunthe same function (and, ultimately, to enable the detection of out 11*4882a593Smuzhiyunof bounds accesses via such arguments). 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunTo avoid the subset of these warnings for the RPC APIs, this patch 14*4882a593Smuzhiyunchanges the declarations of these functions to match both their 15*4882a593Smuzhiyundefinitions and the Oracle RPC documentation. 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunBesides avoiding the -Warray-parameter warnings the effect of this 18*4882a593Smuzhiyunchange is for GCC to issue warnings when either the functions are 19*4882a593Smuzhiyunpassed an array with fewer than MAXNETNAMELEN + 1 elements, or when 20*4882a593Smuzhiyunthe functions themselves access elements outside the array bounds. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun(cherry picked from commit c5db00dc30e0513dc17ad8aefe54c807f55ec967) 23*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 24*4882a593Smuzhiyun--- 25*4882a593Smuzhiyun sunrpc/netname.c | 5 ++--- 26*4882a593Smuzhiyun sunrpc/rpc/auth.h | 8 +++++--- 27*4882a593Smuzhiyun 2 files changed, 7 insertions(+), 6 deletions(-) 28*4882a593Smuzhiyun 29*4882a593Smuzhiyundiff --git a/sunrpc/netname.c b/sunrpc/netname.c 30*4882a593Smuzhiyunindex 4e3730ce..2695870f 100644 31*4882a593Smuzhiyun--- a/sunrpc/netname.c 32*4882a593Smuzhiyun+++ b/sunrpc/netname.c 33*4882a593Smuzhiyun@@ -142,7 +142,7 @@ typedef int (*netname2user_function) (const char netname[MAXNETNAMELEN + 1], 34*4882a593Smuzhiyun uid_t *, gid_t *, int *, gid_t *); 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun int 37*4882a593Smuzhiyun-netname2user (const char netname[MAXNETNAMELEN + 1], uid_t * uidp, gid_t * gidp, 38*4882a593Smuzhiyun+netname2user (const char *netname, uid_t * uidp, gid_t * gidp, 39*4882a593Smuzhiyun int *gidlenp, gid_t * gidlist) 40*4882a593Smuzhiyun { 41*4882a593Smuzhiyun static service_user *startp; 42*4882a593Smuzhiyun@@ -189,8 +189,7 @@ libc_hidden_nolink_sunrpc (netname2user, GLIBC_2_1) 43*4882a593Smuzhiyun #endif 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun int 46*4882a593Smuzhiyun-netname2host (const char netname[MAXNETNAMELEN + 1], char *hostname, 47*4882a593Smuzhiyun- const int hostlen) 48*4882a593Smuzhiyun+netname2host (const char *netname, char *hostname, const int hostlen) 49*4882a593Smuzhiyun { 50*4882a593Smuzhiyun char *p1, *p2; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyundiff --git a/sunrpc/rpc/auth.h b/sunrpc/rpc/auth.h 53*4882a593Smuzhiyunindex e01b0772..0b464088 100644 54*4882a593Smuzhiyun--- a/sunrpc/rpc/auth.h 55*4882a593Smuzhiyun+++ b/sunrpc/rpc/auth.h 56*4882a593Smuzhiyun@@ -179,9 +179,11 @@ extern AUTH *authdes_pk_create (const char *, netobj *, u_int, 57*4882a593Smuzhiyun * Netname manipulating functions 58*4882a593Smuzhiyun * 59*4882a593Smuzhiyun */ 60*4882a593Smuzhiyun-extern int getnetname (char *) __THROW; 61*4882a593Smuzhiyun-extern int host2netname (char *, const char *, const char *) __THROW; 62*4882a593Smuzhiyun-extern int user2netname (char *, const uid_t, const char *) __THROW; 63*4882a593Smuzhiyun+extern int getnetname (char [MAXNETNAMELEN + 1]) __THROW; 64*4882a593Smuzhiyun+extern int host2netname (char [MAXNETNAMELEN + 1], const char *, 65*4882a593Smuzhiyun+ const char *) __THROW; 66*4882a593Smuzhiyun+extern int user2netname (char [MAXNETNAMELEN + 1], const uid_t, 67*4882a593Smuzhiyun+ const char *) __THROW; 68*4882a593Smuzhiyun extern int netname2user (const char *, uid_t *, gid_t *, int *, gid_t *) 69*4882a593Smuzhiyun __THROW; 70*4882a593Smuzhiyun extern int netname2host (const char *, char *, const int) __THROW; 71*4882a593Smuzhiyun-- 72*4882a593Smuzhiyun2.20.1 73*4882a593Smuzhiyun 74