From: Li Qiong Date: Tue, 14 Jun 2022 07:10:59 +0000 (+0800) Subject: libceph: check pointer before assigned to "c->rules[]" X-Git-Tag: v6.6.17~6806^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc54cb8d876ae7b2d1bd0cf8a4d0b96a76318a91;p=platform%2Fkernel%2Flinux-rpi.git libceph: check pointer before assigned to "c->rules[]" It should be better to check pointer firstly, then assign it to c->rules[]. Refine code a little bit. Signed-off-by: Li Qiong Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov --- diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c index 2823bb3..5283ee9 100644 --- a/net/ceph/osdmap.c +++ b/net/ceph/osdmap.c @@ -571,10 +571,10 @@ static struct crush_map *crush_decode(void *pbyval, void *end) goto bad; #endif r = kmalloc(struct_size(r, steps, yes), GFP_NOFS); - c->rules[i] = r; if (r == NULL) goto badmem; dout(" rule %d is at %p\n", i, r); + c->rules[i] = r; r->len = yes; ceph_decode_copy_safe(p, end, &r->mask, 4, bad); /* 4 u8's */ ceph_decode_need(p, end, r->len*3*sizeof(u32), bad);