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