[PATCH v2 2/2] test/strsep: add tests for function strsep()

David Marchand david.marchand at redhat.com
Tue Jul 22 16:30:57 CEST 2025


Hello Andre,

On Mon, Jul 21, 2025 at 10:39 PM Andre Muezerie
<andremue at linux.microsoft.com> wrote:
> diff --git a/app/test/test_strsep.c b/app/test/test_strsep.c
> new file mode 100644
> index 0000000000..19df8f31ee
> --- /dev/null
> +++ b/app/test/test_strsep.c
> @@ -0,0 +1,108 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright (C) 2025 Microsoft Corporation
> + */
> +
> +#include <string.h>
> +#include <rte_os_shim.h>
> +
> +#include "test.h"
> +
> +static int
> +test_strsep_helper(const char *str, const char *delim,
> +                  const char * const expected_tokens[], size_t expected_tokens_count)
> +{
> +       char *s = str != NULL ? strdup(str) : NULL;
> +       const char *token;
> +       for (size_t i = 0; i < expected_tokens_count; i++) {
> +               token = strsep(&s, delim);

The reference to the dupped string gets lost, since calling strsep updates s.
Caught by ASan:

==49990==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 51 byte(s) in 4 object(s) allocated from:
    #0 0x5632dd8cbe83 in strdup
(/home/runner/work/dpdk/dpdk/build/app/dpdk-test+0x271e83) (BuildId:
01a7571ab7814bc83923733b3dae34d28e6ff3e1)
    #1 0x5632de39bad2 in test_strsep_helper
/home/runner/work/dpdk/dpdk/build/../app/test/test_strsep.c:14:26
    #2 0x5632dd91d86f in unit_test_suite_runner
/home/runner/work/dpdk/dpdk/build/../app/test/test.c:364:20
    #3 0x5632dd91c2b0 in cmd_autotest_parsed
/home/runner/work/dpdk/dpdk/build/../app/test/commands.c:68:10
    #4 0x7fba8b3bfc58 in __cmdline_parse
/home/runner/work/dpdk/dpdk/build/../lib/cmdline/cmdline_parse.c:296:3
    #5 0x7fba8b3bfc58 in cmdline_parse
/home/runner/work/dpdk/dpdk/build/../lib/cmdline/cmdline_parse.c:305:9
    #6 0x7fba8b3bcbf7 in cmdline_valid_buffer
/home/runner/work/dpdk/dpdk/build/../lib/cmdline/cmdline.c:25:8
    #7 0x7fba8b3c50ec in rdline_char_in
/home/runner/work/dpdk/dpdk/build/../lib/cmdline/cmdline_rdline.c:456:5
    #8 0x7fba8b3bcfde in cmdline_in
/home/runner/work/dpdk/dpdk/build/../lib/cmdline/cmdline.c:154:9
    #9 0x5632dd91d2ba in main
/home/runner/work/dpdk/dpdk/build/../app/test/test.c:231:15
    #10 0x7fba89a29d8f in __libc_start_call_main
csu/../sysdeps/nptl/libc_start_call_main.h:58:16

SUMMARY: AddressSanitizer: 51 byte(s) leaked in 4 allocation(s).
------------------------------------------------------------------------------


-- 
David Marchand



More information about the dev mailing list