Message ID | 5FA16ED5.4000203@huawei.com |
---|---|
State | Accepted |
Commit | c59c582d56ee3bbde15e6788c0d28329792b2573 |
Headers | show |
Series | tests/qtest: Fix potential NULL pointer dereference in qos_build_main_args() | expand |
On 03/11/20 15:53, AlexChen wrote: > In qos_build_main_args(), the pointer 'path' is dereferenced before > checking it is valid, which may lead to NULL pointer dereference. > So move the assignment to 'cmd_line' after checking 'path' is valid. > > Reported-by: Euler Robot <euler.robot@huawei.com> > Signed-off-by: Alex Chen <alex.chen@huawei.com> > --- > tests/qtest/fuzz/qos_fuzz.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c > index b943577b8c..cee1a2a60f 100644 > --- a/tests/qtest/fuzz/qos_fuzz.c > +++ b/tests/qtest/fuzz/qos_fuzz.c > @@ -70,7 +70,7 @@ static GString *qos_build_main_args(void) > { > char **path = fuzz_path_vec; > QOSGraphNode *test_node; > - GString *cmd_line = g_string_new(path[0]); > + GString *cmd_line; > void *test_arg; > > if (!path) { > @@ -79,6 +79,7 @@ static GString *qos_build_main_args(void) > } > > /* Before test */ > + cmd_line = g_string_new(path[0]); > current_path = path; > test_node = qos_graph_get_node(path[(g_strv_length(path) - 1)]); > test_arg = test_node->u.test.arg; > Queued, thanks. Paolo
On 201103 2253, AlexChen wrote: > In qos_build_main_args(), the pointer 'path' is dereferenced before > checking it is valid, which may lead to NULL pointer dereference. > So move the assignment to 'cmd_line' after checking 'path' is valid. > > Reported-by: Euler Robot <euler.robot@huawei.com> > Signed-off-by: Alex Chen <alex.chen@huawei.com> Reviewed-by: Alexander Bulekov <alxndr@bu.edu> Thanks > --- > tests/qtest/fuzz/qos_fuzz.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c > index b943577b8c..cee1a2a60f 100644 > --- a/tests/qtest/fuzz/qos_fuzz.c > +++ b/tests/qtest/fuzz/qos_fuzz.c > @@ -70,7 +70,7 @@ static GString *qos_build_main_args(void) > { > char **path = fuzz_path_vec; > QOSGraphNode *test_node; > - GString *cmd_line = g_string_new(path[0]); > + GString *cmd_line; > void *test_arg; > > if (!path) { > @@ -79,6 +79,7 @@ static GString *qos_build_main_args(void) > } > > /* Before test */ > + cmd_line = g_string_new(path[0]); > current_path = path; > test_node = qos_graph_get_node(path[(g_strv_length(path) - 1)]); > test_arg = test_node->u.test.arg; > -- > 2.19.1
diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c index b943577b8c..cee1a2a60f 100644 --- a/tests/qtest/fuzz/qos_fuzz.c +++ b/tests/qtest/fuzz/qos_fuzz.c @@ -70,7 +70,7 @@ static GString *qos_build_main_args(void) { char **path = fuzz_path_vec; QOSGraphNode *test_node; - GString *cmd_line = g_string_new(path[0]); + GString *cmd_line; void *test_arg; if (!path) { @@ -79,6 +79,7 @@ static GString *qos_build_main_args(void) } /* Before test */ + cmd_line = g_string_new(path[0]); current_path = path; test_node = qos_graph_get_node(path[(g_strv_length(path) - 1)]); test_arg = test_node->u.test.arg;
In qos_build_main_args(), the pointer 'path' is dereferenced before checking it is valid, which may lead to NULL pointer dereference. So move the assignment to 'cmd_line' after checking 'path' is valid. Reported-by: Euler Robot <euler.robot@huawei.com> Signed-off-by: Alex Chen <alex.chen@huawei.com> --- tests/qtest/fuzz/qos_fuzz.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)