From 4815730ba043bc0ccdebaa0650e35fd6f7947f3d Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Wed, 14 Dec 2016 08:47:28 +0100 Subject: upcall: Fix 'use after free' in a log message There is chance of accessing freed pointer in a log message at TRACE level while cleaning up expired client entries. Cherry picked from commit 212c7600d2070a4414bc89fd7d2c186b5994cd54: > Change-Id: I06b4dad755df63978ab04ca52442bfd4600d139a > BUG: 1404168 > Reported-by: Ravishankar N > Signed-off-by: Soumya Koduri > Reviewed-on: http://review.gluster.org/16117 > NetBSD-regression: NetBSD Build System > CentOS-regression: Gluster Build System > Reviewed-by: Niels de Vos > Smoke: Gluster Build System Change-Id: I06b4dad755df63978ab04ca52442bfd4600d139a BUG: 1404583 Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/16128 Smoke: Gluster Build System CentOS-regression: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: soumya k --- xlators/features/upcall/src/upcall-internal.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/xlators/features/upcall/src/upcall-internal.c b/xlators/features/upcall/src/upcall-internal.c index ea8a3f3b0c1..66cbddf5fa9 100644 --- a/xlators/features/upcall/src/upcall-internal.c +++ b/xlators/features/upcall/src/upcall-internal.c @@ -279,6 +279,11 @@ upcall_cleanup_expired_clients (xlator_t *this, up_client->access_time; if (t_expired > (2*timeout)) { + + gf_log (THIS->name, GF_LOG_TRACE, + "Cleaning up client_entry(%s)", + up_client->client_uid); + ret = __upcall_cleanup_client_entry (up_client); @@ -289,9 +294,6 @@ upcall_cleanup_expired_clients (xlator_t *this, up_client); goto out; } - gf_log (THIS->name, GF_LOG_TRACE, - "Cleaned up client_entry(%s)", - up_client->client_uid); } } } -- cgit