From 629cad59e410977dd38cf54298c83ff9d7701101 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 8 Oct 2012 20:50:12 -0700 Subject: [PATCH] osdmap: fix null deref in dump CID 731938 (#1 of 1): Dereference after null check (FORWARD_NULL) At (15): Passing null pointer "f" to function "ceph::Formatter::dump_int(char const *, int64_t)", which dereferences it. (The dereference happens because this is a virtual function call.) Signed-off-by: Sage Weil --- src/osd/OSDMap.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 62411bfdcab89..2c38c807a2c0b 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1526,7 +1526,8 @@ void OSDMap::print_tree(ostream *out, Formatter *f) const for (int k=s-1; k>=0; k--) { int item = crush->get_bucket_item(cur, k); q.push_front(qi(item, depth+1, (float)crush->get_bucket_item_weight(cur, k) / (float)0x10000)); - f->dump_int("child", item); + if (f) + f->dump_int("child", item); } if (f) f->close_section(); -- 2.39.5