sunrpc/auth_gss: nfsd: fix encoder callback prototypes
authorChristoph Hellwig <hch@lst.de>
Mon, 8 May 2017 12:54:06 +0000 (14:54 +0200)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 13 Jul 2017 19:57:54 +0000 (15:57 -0400)
Declare the p_encode callbacks with the proper prototype instead of
casting to kxdreproc_t and losing all type safety.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Acked-by: Trond Myklebust <trond.myklebust@primarydata.com>
net/sunrpc/auth_gss/gss_rpc_upcall.c
net/sunrpc/auth_gss/gss_rpc_xdr.c
net/sunrpc/auth_gss/gss_rpc_xdr.h

index f0c6a8c78a567778701933758b122d2e621db34a..45ab924da726c06e32e22919c730a5d7c3e38a54 100644 (file)
@@ -55,7 +55,7 @@ enum {
 #define PROC(proc, name)                               \
 [GSSX_##proc] = {                                      \
        .p_proc   = GSSX_##proc,                        \
-       .p_encode = (kxdreproc_t)gssx_enc_##name,       \
+       .p_encode = gssx_enc_##name,    \
        .p_decode = (kxdrdproc_t)gssx_dec_##name,       \
        .p_arglen = GSSX_ARG_##name##_sz,               \
        .p_replen = GSSX_RES_##name##_sz,               \
index 25d9a9cf7b66b7f4e501d38d91f6a1908830972e..5e54f474309212b0fdf94035e129f1302c627798 100644 (file)
@@ -44,7 +44,7 @@ static int gssx_dec_bool(struct xdr_stream *xdr, u32 *v)
 }
 
 static int gssx_enc_buffer(struct xdr_stream *xdr,
-                          gssx_buffer *buf)
+                          const gssx_buffer *buf)
 {
        __be32 *p;
 
@@ -56,7 +56,7 @@ static int gssx_enc_buffer(struct xdr_stream *xdr,
 }
 
 static int gssx_enc_in_token(struct xdr_stream *xdr,
-                            struct gssp_in_token *in)
+                            const struct gssp_in_token *in)
 {
        __be32 *p;
 
@@ -130,7 +130,7 @@ static int gssx_dec_option(struct xdr_stream *xdr,
 }
 
 static int dummy_enc_opt_array(struct xdr_stream *xdr,
-                               struct gssx_option_array *oa)
+                               const struct gssx_option_array *oa)
 {
        __be32 *p;
 
@@ -348,7 +348,7 @@ static int gssx_dec_status(struct xdr_stream *xdr,
 }
 
 static int gssx_enc_call_ctx(struct xdr_stream *xdr,
-                            struct gssx_call_ctx *ctx)
+                            const struct gssx_call_ctx *ctx)
 {
        struct gssx_option opt;
        __be32 *p;
@@ -733,8 +733,9 @@ static int gssx_enc_cb(struct xdr_stream *xdr, struct gssx_cb *cb)
 
 void gssx_enc_accept_sec_context(struct rpc_rqst *req,
                                 struct xdr_stream *xdr,
-                                struct gssx_arg_accept_sec_context *arg)
+                                const void *data)
 {
+       const struct gssx_arg_accept_sec_context *arg = data;
        int err;
 
        err = gssx_enc_call_ctx(xdr, &arg->call_ctx);
index 9d88c6239f01429b59cc2bb64cbac3abb3329f43..87cd719ca0ad713f7cf1c862bee9ae5c5dff76d9 100644 (file)
@@ -179,7 +179,7 @@ struct gssx_res_accept_sec_context {
 #define gssx_dec_init_sec_context NULL
 void gssx_enc_accept_sec_context(struct rpc_rqst *req,
                                 struct xdr_stream *xdr,
-                                struct gssx_arg_accept_sec_context *args);
+                                const void *data);
 int gssx_dec_accept_sec_context(struct rpc_rqst *rqstp,
                                struct xdr_stream *xdr,
                                struct gssx_res_accept_sec_context *res);