selftests/bpf: Fix issues in parse_num_list()

Bugzilla: https://bugzilla.redhat.com/2120968

commit 958ddfd75d83d83e713027677c8786781e1f4576
Author: Yuntao Wang <ytcoode@gmail.com>
Date:   Wed Apr 6 08:36:22 2022 +0800

    selftests/bpf: Fix issues in parse_num_list()
    
    The function does not check that parsing_end is false after parsing
    argument. Thus, if the final part of the argument is something like '4-',
    which is invalid, parse_num_list() will discard it instead of returning
    -EINVAL.
    
    Before:
    
     $ ./test_progs -n 2,4-
     #2 atomic_bounds:OK
     Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
    
    After:
    
     $ ./test_progs -n 2,4-
     Failed to parse test numbers.
    
    Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20220406003622.73539-1-ytcoode@gmail.com

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
This commit is contained in:
Yauheni Kaliuta 2022-10-06 12:44:19 +03:00
parent aa9a5461ec
commit fc41a5a9a5
1 changed files with 1 additions and 1 deletions

View File

@ -60,7 +60,7 @@ int parse_num_list(const char *s, bool **num_set, int *num_set_len)
set[i] = true;
}
if (!set)
if (!set || parsing_end)
return -EINVAL;
*num_set = set;