From 014190736f4f245759aba64b21e1ffd657937d9f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Aug 2008 09:16:06 -0700 Subject: [PATCH] kclient: fix osdmap decoding --- src/kernel/osdmap.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/kernel/osdmap.c b/src/kernel/osdmap.c index 260a0d4289d3b..ca8a08150a53a 100644 --- a/src/kernel/osdmap.c +++ b/src/kernel/osdmap.c @@ -170,6 +170,8 @@ static struct crush_map *crush_decode(void **p, void *end) case CRUSH_BUCKET_STRAW: size = sizeof(struct crush_bucket_straw); break; + default: + goto bad; } BUG_ON(size == 0); b = c->buckets[i] = kzalloc(size, GFP_NOFS); @@ -375,6 +377,11 @@ struct ceph_osdmap *osdmap_decode(void **p, void *end) } } + /* ignore max_snap, removed_snaps */ + *p += sizeof(u64); + ceph_decode_32_safe(p, end, len, bad); + *p += len * 2 * sizeof(u64); + /* crush */ ceph_decode_32_safe(p, end, len, bad); dout(30, "osdmap_decode crush len %d from off %x\n", -- 2.39.5