[CRIU] [PATCH] rst alloc: align on reporting cpos too

Tycho Andersen tycho.andersen at canonical.com
Tue Feb 9 09:38:36 PST 2016


Since we align in rst_mem_alloc, we should also align when reporting the
current position; if we don't and things get unlucky, we report a different
position than where the pointer is actually allocated, which fucks things
up quite bad :)

Closes #111

Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
 rst-malloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rst-malloc.c b/rst-malloc.c
index 3556980..8e17255 100644
--- a/rst-malloc.c
+++ b/rst-malloc.c
@@ -128,7 +128,7 @@ unsigned long rst_mem_cpos(int type)
 {
 	struct rst_mem_type_s *t = &rst_mems[type];
 	BUG_ON(!t->remapable || !t->enabled);
-	return t->free_mem - t->buf;
+	return ((void*) round_up((unsigned long)t->free_mem, sizeof(void *))) - t->buf;
 }
 
 void *rst_mem_remap_ptr(unsigned long pos, int type)
-- 
2.7.0.rc3



More information about the CRIU mailing list