From: Alexandre Ioffe Date: Wed, 6 Jul 2022 02:58:58 +0000 (-0700) Subject: EX-5505 lipe: JSON statistics crashes lpurge X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=f50dd3073bf757adb47b07f0d963eae525fdec59;p=fs%2Flustre-release.git EX-5505 lipe: JSON statistics crashes lpurge Use json_object_get() before json_object_put() otherwise json_object_put() call causes crash Signed-off-by: Alexandre Ioffe Test-Parameters: trivial testlist=hot-pools Change-Id: Id5e8f05dd010f6626835176bf854344cd2b58a93 Reviewed-on: https://review.whamcloud.com/47885 Reviewed-by: Alex Zhuravlev Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- diff --git a/lipe/src/lpurge.c b/lipe/src/lpurge.c index af02d7f..3e9dd09 100644 --- a/lipe/src/lpurge.c +++ b/lipe/src/lpurge.c @@ -1835,6 +1835,10 @@ static void lpurge_usr2_handle(int sig) obj_summary = json_object_new_object(); sum_stats = json_object_new_object(); + if (!obj_summary || !sum_stats) + LX_OOM(0); + json_object_get(obj_summary); + json_object_get(sum_stats); json_object_object_add(sum_stats, "min_utime", json_object_new_int64(min_utime == ~0UL ? @@ -1875,6 +1879,10 @@ static void lpurge_usr2_handle(int sig) obj_slot = json_object_new_object(); slot_stats = json_object_new_object(); + if (!obj_slot || !slot_stats) + LX_OOM(0); + json_object_get(obj_slot); + json_object_get(slot_stats); json_object_object_add(slot_stats, "id", json_object_new_int(i)); @@ -1929,6 +1937,9 @@ static void lpurge_usr2_handle(int sig) goto out; obj_stat = json_object_new_object(); + if (!obj_stat) + LX_OOM(0); + json_object_get(obj_stat); fid = lo->lo_fid; snprintf(fid_buf, sizeof(fid_buf), DFID, PFID(&fid));