aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Qiong <liqiong@nfschina.com>2022-06-14 15:10:59 +0800
committerIlya Dryomov <idryomov@gmail.com>2022-08-03 00:54:12 +0200
commitfc54cb8d876ae7b2d1bd0cf8a4d0b96a76318a91 (patch)
tree067e946fac215238a576d08c6eae0f13b5817ee9
parentceph: don't get the inline data for new creating files (diff)
downloadlinux-dev-fc54cb8d876ae7b2d1bd0cf8a4d0b96a76318a91.tar.xz
linux-dev-fc54cb8d876ae7b2d1bd0cf8a4d0b96a76318a91.zip
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 <liqiong@nfschina.com> Reviewed-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r--net/ceph/osdmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
index 2823bb3cff55..5283ee9be8c8 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);