[dpdk-dev] [PATCH] pmdinfogen: allow padding after NUL terminator
David Marchand
david.marchand at redhat.com
Thu May 27 09:31:57 CEST 2021
On Wed, May 26, 2021 at 11:44 PM Dmitry Kozlyuk
<dmitry.kozliuk at gmail.com> wrote:
>
> Size of string constant symbol may be larger than its length
> measured up to NUL terminator. In this case pmdinfogen included padding
> bytes after NUL terminator in generated source, yielding incorrect code.
>
> Always trim string data to NUL terminator while reading ELF.
> It was already done for COFF because there's no symbol size.
>
> Bugzilla ID: 720
> Fixes: f0f93a7adfee ("buildtools: use Python pmdinfogen")
>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> ---
> buildtools/coff.py | 6 ------
> buildtools/pmdinfogen.py | 10 ++++++++--
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/buildtools/coff.py b/buildtools/coff.py
> index 86fb0602b7..a7b6c37e32 100644
> --- a/buildtools/coff.py
> +++ b/buildtools/coff.py
> @@ -146,9 +146,3 @@ def get_section_data(self, number):
>
> def get_string(self, offset):
> return decode_asciiz(self._strings[offset:])
^^^^
coff.py still needs this helper.
Caught in the lab:
Traceback (most recent call last):
File "../buildtools/pmdinfogen.py", line 280, in <module>
main()
File "../buildtools/pmdinfogen.py", line 275, in main
drivers = load_drivers(image)
File "../buildtools/pmdinfogen.py", line 208, in load_drivers
for symbol in image.find_by_prefix("this_pmd_name"):
File "../buildtools/pmdinfogen.py", line 108, in find_by_prefix
if symbol.name.startswith(prefix):
File "C:\Users\builder\jenkins\workspace\Windows-Compile-DPDK-Mingw64\dpdk\buildtools\coff.py",
line 84, in name
return decode_asciiz(bytes(self._coff.name.immediate))
NameError: name 'decode_asciiz' is not defined
Traceback (most recent call last):
File "../buildtools/gen-pmdinfo-cfile.py", line 20, in <module>
subprocess.run(pmdinfogen + paths + [output], check=True)
File "c:\python38\lib\subprocess.py", line 512, in run
raise CalledProcessError(retcode, process.args,
--
David Marchand
More information about the dev
mailing list