21ab4e
From 33d8a6956e66f384ad6b7a77d9c3017a9f36120d Mon Sep 17 00:00:00 2001
21ab4e
From: Niels de Vos <ndevos@redhat.com>
21ab4e
Date: Wed, 19 Jul 2017 13:53:27 +0200
21ab4e
Subject: [PATCH 592/593] nfs: improve error handling for WebNFS mount
21ab4e
 permissions
21ab4e
21ab4e
In case nfs3_funge_webnfs_zerolen_fh() returns an error, the
21ab4e
nfs3_call_state_t structure will not get initialized. This means that
21ab4e
calling `nfs3_call_state_wipe (cs)` will result in a segmentation fault
21ab4e
after commit daed52b8eb that makes nfs3_call_state_t refcounted.
21ab4e
21ab4e
>Reviewed-on: https://review.gluster.org/17822
21ab4e
>Smoke: Gluster Build System <jenkins@build.gluster.org>
21ab4e
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
21ab4e
>Reviewed-by: jiffin tony Thottan <jthottan@redhat.com>
21ab4e
>Reviewed-by: soumya k <skoduri@redhat.com>
21ab4e
21ab4e
Change-Id: I4c300aedf132a7fea95756dd278ff87d67722478
21ab4e
BUG: 1478136
21ab4e
Signed-off-by: Niels de Vos <ndevos@redhat.com>
21ab4e
Reviewed-on: https://code.engineering.redhat.com/gerrit/114348
21ab4e
Reviewed-by: Jiffin Thottan <jthottan@redhat.com>
21ab4e
Tested-by: Atin Mukherjee <amukherj@redhat.com>
21ab4e
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
21ab4e
---
21ab4e
 xlators/nfs/server/src/nfs3.c | 3 ++-
21ab4e
 1 file changed, 2 insertions(+), 1 deletion(-)
21ab4e
21ab4e
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
21ab4e
index 7443dbc..52b948e 100644
21ab4e
--- a/xlators/nfs/server/src/nfs3.c
21ab4e
+++ b/xlators/nfs/server/src/nfs3.c
21ab4e
@@ -1583,7 +1583,8 @@ nfs3err:
21ab4e
                                      NFS3_LOOKUP, stat, -ret,
21ab4e
                                      cs ? cs->resolvedloc.path : NULL);
21ab4e
                 nfs3_lookup_reply (req, stat, NULL, NULL, NULL);
21ab4e
-                nfs3_call_state_wipe (cs);
21ab4e
+                if (cs)
21ab4e
+                        nfs3_call_state_wipe (cs);
21ab4e
                 /* Ret must be 0 after this so that the caller does not
21ab4e
                  * also send an RPC reply.
21ab4e
                  */
21ab4e
-- 
21ab4e
1.8.3.1
21ab4e