Reopen temporary system image to avoid stale data.

NamedTemporaryFile's aggressive caching behavior can cause an issue
where changes made by another process aren't visible even after the
fseek() below or a flush(). To avoid this, simply open the file
again and read from the fresh version.

This fixes an issue where verity metadata written by append2simg
doesn't become visible to img_from_target_files.

Change-Id: I291fb3a95d5b532218ac6205ecc9e9b4f3a36bd4
This commit is contained in:
Geremy Condra 2014-05-13 20:23:54 -07:00
parent 2ec7c7a21c
commit 15d5348e6c
1 changed files with 1 additions and 2 deletions

View File

@ -90,8 +90,7 @@ def BuildSystem(input_dir, info_dict, sparse=True, map_file=None):
mapdata = None
if sparse:
img.seek(os.SEEK_SET, 0)
data = img.read()
data = open(img.name).read()
img.close()
else:
success, name = build_image.UnsparseImage(img.name, replace=False)