]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: fix monmap decoding
authorSage Weil <sage@newdream.net>
Mon, 20 Jul 2009 23:01:55 +0000 (16:01 -0700)
committerSage Weil <sage@newdream.net>
Mon, 20 Jul 2009 23:24:04 +0000 (16:24 -0700)
src/kernel/mon_client.c

index c9d8bf9db17818d92a12f91be651e181f2d17f66..47732f0c4758d55327607a50d0c57acc60263870 100644 (file)
@@ -27,15 +27,15 @@ struct ceph_monmap *ceph_monmap_decode(void *p, void *end)
 
        dout("monmap_decode %p %p len %d\n", p, end, (int)(end-p));
 
-       ceph_decode_32_safe(&p, end, version, bad);
+       ceph_decode_16_safe(&p, end, version, bad);
 
-       ceph_decode_need(&p, end, 2*sizeof(u32) + 2*sizeof(u64), bad);
+       ceph_decode_need(&p, end, sizeof(fsid) + 2*sizeof(u32), bad);
        ceph_decode_copy(&p, &fsid, sizeof(fsid));
        ceph_decode_32(&p, epoch);
+
        ceph_decode_32(&p, num_mon);
        ceph_decode_need(&p, end, num_mon*sizeof(m->mon_inst[0]), bad);
 
-       /* The encoded and decoded sizes match. */
        if (num_mon >= CEPH_MAX_MON)
                goto bad;
        m = kmalloc(sizeof(*m) + sizeof(m->mon_inst[0])*num_mon, GFP_NOFS);