If lenght parameter is provided to sparse_copy call it's mandatory to check if the output file is fully written after reading unmapped block from input file.
If it's not done then sparse_copy can write more data than specified length. Signed-off-by: Ed Bartosh <[email protected]> --- scripts/lib/wic/filemap.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/lib/wic/filemap.py b/scripts/lib/wic/filemap.py index 8719f44..764dbbe 100644 --- a/scripts/lib/wic/filemap.py +++ b/scripts/lib/wic/filemap.py @@ -563,6 +563,13 @@ def sparse_copy(src_fname, dst_fname, skip=0, seek=0, start = skip fmap._f_image.seek(start, os.SEEK_SET) + + written += start - skip - written + if length and written >= length: + dst_file.seek(seek + length, os.SEEK_SET) + dst_file.close() + return + dst_file.seek(seek + start - skip, os.SEEK_SET) chunk_size = 1024 * 1024 -- 2.1.4 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
