From: Steve Dickson Date: Wed, 20 Jul 2011 13:47:49 +0000 (-0400) Subject: Segfault in SVCAUTH_WRAP call X-Git-Tag: libtirpc-0-2-3-rc2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6bdc5761e5340b0df03c2b5c344b04feabaad9e;p=libtirpc Segfault in SVCAUTH_WRAP call The xprt->xp_auth pointer need to be checked before used in the SVCAUTH_WRAP call since it can be NULL during error conditions. Signed-off-by: Steve Dickson --- diff --git a/src/svc_dg.c b/src/svc_dg.c index 5ef9df2..081db61 100644 --- a/src/svc_dg.c +++ b/src/svc_dg.c @@ -254,8 +254,8 @@ svc_dg_reply(xprt, msg) XDR_SETPOS(xdrs, 0); msg->rm_xid = su->su_xid; if (xdr_replymsg(xdrs, msg) && - (!has_args || - (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { + (!has_args || (xprt->xp_auth && + SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { struct msghdr *msg = &su->su_msghdr; struct iovec iov; diff --git a/src/svc_vc.c b/src/svc_vc.c index 74632e2..4c70de8 100644 --- a/src/svc_vc.c +++ b/src/svc_vc.c @@ -698,8 +698,8 @@ svc_vc_reply(xprt, msg) msg->rm_xid = cd->x_id; rstat = FALSE; if (xdr_replymsg(xdrs, msg) && - (!has_args || - (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { + (!has_args || (xprt->xp_auth && + SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { rstat = TRUE; } (void)xdrrec_endofrecord(xdrs, TRUE);