Only set IOU images to be executable when importing images

This commit is contained in:
grossmj 2026-07-15 09:43:34 +02:00
parent c528d2cd95
commit 1986bce538
No known key found for this signature in database
GPG Key ID: 1E7DD6DBB53FF3D7

View File

@ -283,9 +283,15 @@ async def _import_images(controller, images_path):
os.makedirs(os.path.dirname(dst), exist_ok=True)
if not os.path.exists(dst):
await wait_run_in_executor(shutil.move, path, dst)
if not os.path.islink(dst):
os.chmod(dst, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
try:
with open(dst, "rb") as f:
# read the first 7 bytes of the file.
elf_header_start = f.read(7)
# IOU images must start with the ELF magic number, be 32-bit or 64-bit, little endian and have an ELF version of 1
if elf_header_start == b'\x7fELF\x01\x01\x01' or elf_header_start == b'\x7fELF\x02\x01\x01':
os.chmod(dst, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
except OSError as e:
continue
async def update_snapshots(snapshots_dir, project_path, project_name, project_id, reset_mac_addresses=True):
"""