[PATCH] elf: Replace tst-p_alignmod1-editX with a python script
Florian Weimer
fweimer@redhat.com
Wed Jan 26 10:09:20 GMT 2022
* Adhemerval Zanella via Libc-alpha:
> diff --git a/scripts/tst-elf-edit.py b/scripts/tst-elf-edit.py
> new file mode 100644
> index 0000000000..1fb9b8e0fe
> --- /dev/null
> +++ b/scripts/tst-elf-edit.py
> @@ -0,0 +1,206 @@
> +class Elf_Ehdr:
> + def __init__(self, e_ident):
> + endian, addr, off = elf_types_fmts(e_ident)
> + self.fmt = '{0}HHI{1}{2}{2}IHHHHHH'.format(endian, addr, off)
> + self.len = struct.calcsize(self.fmt)
> +
> + def read(self, f):
> + buf = f.read(self.len)
> + if not buf:
> + error('{}: header too small'.format(f.name))
I think you need to check len(buf) < self.len.
> +class Elf_Phdr:
> + def __init__(self, e_ident):
> + endian, addr, off = elf_types_fmts(e_ident)
> + self.ei_class = e_ident[EI_CLASS]
> + if self.ei_class == ELFCLASS32:
> + self.fmt = '{0}I{2}{1}{1}IIII'.format(endian, addr, off)
> + else:
> + self.fmt = '{0}II{2}{1}{1}QQQ'.format(endian, addr, off)
> + self.len = struct.calcsize(self.fmt)
> +
> + def read(self, f):
> + buf = f.read(self.len)
> + if not buf:
> + error('{}: program header too small'.format(f.name))
Here as well.
Rest looks okay.
Thanks,
Florian
More information about the Libc-alpha
mailing list