From 8050b61562723c531ad9d4736f5549050eba190e Mon Sep 17 00:00:00 2001 From: Dmitry Kozlyuk Date: Fri, 28 May 2021 00:24:21 +0300 Subject: [PATCH] buildtools: allow string constant padding 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") Cc: stable@dpdk.org Signed-off-by: Dmitry Kozlyuk --- buildtools/pmdinfogen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py index 7a739ec7d4..2a44f17bda 100755 --- a/buildtools/pmdinfogen.py +++ b/buildtools/pmdinfogen.py @@ -28,7 +28,7 @@ class ELFSymbol: def string_value(self): size = self._symbol["st_size"] value = self.get_value(0, size) - return value[:-1].decode() if value else "" + return coff.decode_asciiz(value) # not COFF-specific def get_value(self, offset, size): section = self._symbol["st_shndx"] -- 2.20.1