Hello, Thanks to the patches shared by Benoit Ganne on Monday, I was today able to use AddressSanitizer for vpp. AddressSanitizer detected a problem that I think is caused by a bug in plugins/dpdk/device/init.c related to how the conf->eal_init_args vector is manipulated in the dpdk_config function.
It appears that the code there uses two different kinds of strings, both C-style null-terminated strings (char*) and vectors of type (u8*) which are not necessarily null-terminated but instead have their length stored in a different way (as described in vppinfra/vec.h). In the dpdk_config function, various strings are added to the conf- >eal_init_args vector. Those strings need to be null-terminated because they are later used as input to the "format" function which expects null-terminated strings for its later arguments. The strings are mostly null-terminated but not all of them, which leads to the error detected by AddressSanitizer. I think what happens is that some string that was generated by the "format" function and is thus not null-terminated is later given as input to a function that needs null-terminated strings as input, leading to illegal memory access. I'm able to make AddressSanitizer happy by making the following two changes: (1) Null-terminate the tmp string for conf->nchannels in the same way as it is done in other places in the code: - tmp = format (0, "%d", conf->nchannels); + tmp = format (0, "%d%c", conf->nchannels, 0); (2) Null-terminate conf->eal_init_args_str before the call to dpdk_log_warn: + vec_add1(conf->eal_init_args_str, 0); After that, vpp starts without complaints from AddressSanitizer. Should this be reported as a new bug in the Jira system for VPP ( https://jira.fd.io/browse/VPP)? Should I push a fix myself (not sure if I have permission to do that) or could someone more familiar with that part of the code do it? Best regards, Elias
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13955): https://lists.fd.io/g/vpp-dev/message/13955 Mute This Topic: https://lists.fd.io/mt/34104878/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-