[PATCH] uadk_tool: fix segfault in digest/aead init1 from uninitialized wd_sched
From: Weili Qian <qianweili@huawei.com> digest_init1() and aead_init1() in uadk_tool/test/test_sec.c declared "struct wd_sched sched;" on the stack without initialization, leaving sched_policy and callback fields as garbage. This bypassed the SCHED_POLICY_NONE/SINGLE rejection in wd_digest_init/wd_aead_init and led to a segfault on the first wd_do_digest_sync/async call. Zero-initialize the struct so sched_policy defaults to SCHED_POLICY_RR and all callbacks/handles are NULL. Signed-off-by: Weili Qian <qianweili@huawei.com> --- uadk_tool/test/test_sec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uadk_tool/test/test_sec.c b/uadk_tool/test/test_sec.c index 462ba7a..6e1b990 100644 --- a/uadk_tool/test/test_sec.c +++ b/uadk_tool/test/test_sec.c @@ -1416,7 +1416,7 @@ static __u32 sched_digest_pick_next_ctx(handle_t h_sched_ctx, static int digest_init1(int type, int mode) { struct uacce_dev_list *list; - struct wd_sched sched; + struct wd_sched sched = {0}; int ret; if (g_use_env) @@ -2685,7 +2685,7 @@ static __u32 sched_aead_pick_next_ctx(handle_t h_sched_ctx, static int aead_init1(int type, int mode) { struct uacce_dev_list *list; - struct wd_sched sched; + struct wd_sched sched = {0}; int ret; if (g_use_env) -- 2.33.0
participants (1)
-
Chenghai Huang