From c916f0884bd08b99ddc77b6a148a730d107a9979 Mon Sep 17 00:00:00 2001 From: Juraj Marcin Date: Mon, 29 Aug 2022 14:28:40 +0200 Subject: [PATCH] checkpolicy: avoid passing NULL pointer to memset() Function `class_perm_node_init()` is called with `dest_perms` before it is checked that its allocation succeeded. If the allocation fails, then a NULL pointer is passed to `memset()` inside the `class_perm_node_init()` function. Signed-off-by: Juraj Marcin --- checkpolicy/policy_define.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/checkpolicy/policy_define.c b/checkpolicy/policy_define.c index f3b48870..54bb304b 100644 --- a/checkpolicy/policy_define.c +++ b/checkpolicy/policy_define.c @@ -2371,11 +2371,12 @@ static int avrule_cpy(avrule_t *dest, const avrule_t *src) src_perms = src->perms; while (src_perms) { dest_perms = (class_perm_node_t *) calloc(1, sizeof(class_perm_node_t)); - class_perm_node_init(dest_perms); if (!dest_perms) { yyerror("out of memory"); return -1; } + class_perm_node_init(dest_perms); + if (!dest->perms) dest->perms = dest_perms; else