build: symtab: sanitize function name

Sanitize the function name and only store the valid part.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
This commit is contained in:
Yong Cong Sin 2024-05-27 15:40:27 +08:00 committed by David Leach
commit 408d0be89f

View file

@ -7,6 +7,7 @@
import argparse
import sys
import os
import re
from elftools.elf.elffile import ELFFile
from elftools.elf.descriptions import (
@ -64,6 +65,17 @@ start_addr = 0
symtab_list = []
def sanitize_func_name(name):
pattern = r'(^[a-zA-Z_][a-zA-Z0-9_]*)'
match = re.match(pattern, name)
if match:
return match.group(0)
else:
log.error(f"Failed to sanitize function name: {name}")
return name
def main():
args = parse_args()
log.set_debug(args.debug)
@ -80,12 +92,13 @@ def main():
symbol_addr = symbol['st_value']
if symbol_type == 'FUNC' and symbol_addr != 0:
symbol_name = sanitize_func_name(symbol.name)
symtab_list.append(symtab_entry(
symbol_addr, symbol_addr, symbol.name))
symbol_addr, symbol_addr, symbol_name))
log.debug('%6d: %s %.25s' % (
i,
hex(symbol_addr),
symbol.name))
symbol_name))
i = i + 1
symtab_list.sort(key=lambda x: x.addr, reverse=False)