summaryrefslogtreecommitdiffstats
path: root/xlators/features/snapview-client
diff options
context:
space:
mode:
authorKrutika Dhananjay <kdhananj@redhat.com>2015-01-02 12:28:12 +0530
committerVijay Bellur <vbellur@redhat.com>2015-01-02 05:10:12 -0800
commit7e27cb2352b4f48935e85e3288a24ac03c3d1f83 (patch)
tree4eef08f0ab1d74114dd009fe44421fb25defb7f7 /xlators/features/snapview-client
parent4c3a6bc4573013df1912996e77ded48fddc01516 (diff)
features/uss: Perform NULL check on @name in svc_getxattr
LISTXATTR fop is internally converted into a GETXATTR with the "name" parameter set to NULL. In svc_getxattr(), a listxattr was causing a crash because of a NULL pointer dereference on @name. FIX: Add the necessary NULL check. Change-Id: I70024d40dc0695648c6d41b423c2665d030e1232 BUG: 1178079 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com> Reviewed-on: http://review.gluster.org/9378 Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-by: Vijaikumar Mallikarjuna <vmallika@redhat.com> Reviewed-by: Sachin Pandit <spandit@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/features/snapview-client')
-rw-r--r--xlators/features/snapview-client/src/snapview-client.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/xlators/features/snapview-client/src/snapview-client.c b/xlators/features/snapview-client/src/snapview-client.c
index ad505633217..58f566ef520 100644
--- a/xlators/features/snapview-client/src/snapview-client.c
+++ b/xlators/features/snapview-client/src/snapview-client.c
@@ -791,6 +791,9 @@ svc_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, const char *name,
* If the name variable matches this key then we have
* to send back .snaps as the real filename.
*/
+ if (!name)
+ goto stack_wind;
+
sscanf (name, "%[^:]:%[^@]", attrname, attrval);
strcat (attrname, ":");
@@ -818,7 +821,7 @@ svc_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, const char *name,
goto out;
}
}
-
+stack_wind:
SVC_GET_SUBVOL_FROM_CTX (this, op_ret, op_errno, inode_type, ret,
loc->inode, subvolume, out);