[CRIU] Report corrupted remap if mapping table is too long

Chanho Park chanho61.park at samsusng.com
Wed Jun 5 01:59:09 EDT 2013


Hi all,

I found self_vmas table of sigreturn_restore function was corrupted when
smaps info is too long.
Please see below restoration log:

(02.323645)  14094: parse_smaps: vma_area:0x174708 size:0x70
(02.323668)  14094: parse_smaps: vma_area:0x174780 size:0x70
(02.323690)  14094: parse_smaps: vma_area:0x1747f8 size:0x70
(02.323726)  14094: parse_smaps: vma_area:0x174870 size:0x70
(02.323807)  14094: 10 threads require 648K of memory
(02.323962)  14094: Found bootstrap VMA hint at: 0x15b000 (needs ~912K)
pie: Task 14094  exited, status= 11
(05.391927) Error (cr-restore.c:1321): Restoring FAILED.

I inserted temporary log to print the address of each vma_area in the
parse_smaps.
In case the mapping table of the process is too long,
it is corrupted after remap_restorer_blob because it is overlapped with
exec_mem_hint address.
For addressing the problem, I temporary moved the address of exec_mem_hint
to avoid overlapped region.
After that, the mapping information was changed compared with original
mapping.

How do I address this issue gracefully?
Thanks.

Best regards,
Chanho Park



More information about the CRIU mailing list