|
|
d1681e |
From 9efbf3a9fb009706ca71068449a961ee0237a705 Mon Sep 17 00:00:00 2001
|
|
|
d1681e |
From: hari gowtham <hgowtham@redhat.com>
|
|
|
d1681e |
Date: Tue, 8 May 2018 11:42:33 +0530
|
|
|
d1681e |
Subject: [PATCH 265/271] Glusterfsd: brick crash during get-state
|
|
|
d1681e |
|
|
|
d1681e |
back-port of: https://review.gluster.org/#/c/19977/
|
|
|
d1681e |
|
|
|
d1681e |
The xprt's dereferencing wasn't checked before using it for the
|
|
|
d1681e |
strcmp, which caused the segfault and crashed the brick process.
|
|
|
d1681e |
|
|
|
d1681e |
fix: Check every deferenced variable before using it.
|
|
|
d1681e |
|
|
|
d1681e |
>Change-Id: I7f705d1c88a124e8219bb877156fadb17ecf11c3
|
|
|
d1681e |
>fixes: bz#1575864
|
|
|
d1681e |
>Signed-off-by: hari gowtham <hgowtham@redhat.com>
|
|
|
d1681e |
|
|
|
d1681e |
Change-Id: I7f705d1c88a124e8219bb877156fadb17ecf11c3
|
|
|
d1681e |
BUG: 1572075
|
|
|
d1681e |
Signed-off-by: hari gowtham <hgowtham@redhat.com>
|
|
|
d1681e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/138650
|
|
|
d1681e |
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
|
|
d1681e |
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
|
|
d1681e |
---
|
|
|
d1681e |
xlators/protocol/server/src/server.c | 7 +++++--
|
|
|
d1681e |
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
|
d1681e |
|
|
|
d1681e |
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
|
|
|
d1681e |
index 6f20a06..2ba5da3 100644
|
|
|
d1681e |
--- a/xlators/protocol/server/src/server.c
|
|
|
d1681e |
+++ b/xlators/protocol/server/src/server.c
|
|
|
d1681e |
@@ -245,8 +245,11 @@ server_priv_to_dict (xlator_t *this, dict_t *dict, char *brickname)
|
|
|
d1681e |
pthread_mutex_lock (&conf->mutex);
|
|
|
d1681e |
{
|
|
|
d1681e |
list_for_each_entry (xprt, &conf->xprt_list, list) {
|
|
|
d1681e |
- if (!strcmp (brickname,
|
|
|
d1681e |
- xprt->xl_private->bound_xl->name)) {
|
|
|
d1681e |
+ if ((xprt) && (xprt->xl_private) &&
|
|
|
d1681e |
+ (xprt->xl_private->bound_xl) &&
|
|
|
d1681e |
+ (xprt->xl_private->bound_xl->name) && (brickname) &&
|
|
|
d1681e |
+ (!strcmp (brickname,
|
|
|
d1681e |
+ xprt->xl_private->bound_xl->name))) {
|
|
|
d1681e |
peerinfo = &xprt->peerinfo;
|
|
|
d1681e |
memset (key, 0, sizeof (key));
|
|
|
d1681e |
snprintf (key, sizeof (key),
|
|
|
d1681e |
--
|
|
|
d1681e |
1.8.3.1
|
|
|
d1681e |
|