浏览代码

ceph: Always free allocated memory in osdmap_decode()

Always free memory allocated to 'pi' in
net/ceph/osdmap.c::osdmap_decode().

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Sage Weil <sage@newdream.net>
Jesper Juhl 14 年之前
父节点
当前提交
b0aee3516d
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      net/ceph/osdmap.c

+ 3 - 1
net/ceph/osdmap.c

@@ -605,8 +605,10 @@ struct ceph_osdmap *osdmap_decode(void **p, void *end)
 			goto bad;
 		}
 		err = __decode_pool(p, end, pi);
-		if (err < 0)
+		if (err < 0) {
+			kfree(pi);
 			goto bad;
+		}
 		__insert_pg_pool(&map->pg_pools, pi);
 	}