[sheepdog] [PATCH] farm: fix unalign memory alloction
Liu Yuan
namei.unix at gmail.com
Mon May 28 15:20:47 CEST 2012
From: Liu Yuan <tailai.ly at taobao.com>
This bug will be triggered by farm_link(), which calls retrieve_object_from_snap()
that pass the unaligned buf to misfortune farm_atomic_put().
Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
---
sheep/farm/sha1_file.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sheep/farm/sha1_file.c b/sheep/farm/sha1_file.c
index 347c0b5..135546f 100644
--- a/sheep/farm/sha1_file.c
+++ b/sheep/farm/sha1_file.c
@@ -180,7 +180,11 @@ static void *unpack_sha1_file(void *map, unsigned long mapsize, struct sha1_file
memcpy(hdr, map, sizeof(*hdr));
hdr_len = sizeof(*hdr);
- buf = xmalloc(hdr->size);
+ buf = valloc(hdr->size);
+ if (!buf) {
+ dprintf("%m\n");
+ return NULL;
+ }
memcpy(buf, (char *)map + hdr_len, mapsize - hdr_len);
return buf;
--
1.7.10.2
More information about the sheepdog
mailing list