From f56d975793cfd26c2a3f8fb9d849e54fd9c2d150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cern=C3=BD?= Date: Fri, 10 Jan 2025 12:02:37 +0100 Subject: [PATCH] Plug a memory leak Addressing this OpenScanHub issue: 1. Defect type: RESOURCE_LEAK 5. openscap-1.4.1/src/XCCDF_POLICY/xccdf_policy_remediate.c:726:3: alloc_arg: "oscap_pcre_compile" allocates memory that is stored into "err". 19. openscap-1.4.1/src/XCCDF_POLICY/xccdf_policy_remediate.c:774:2: leaked_storage: Variable "err" going out of scope leaks the storage it points to. 772| oscap_pcre_free(tab[i].re); 773| 774|-> return ret; 775| } 776| --- src/XCCDF_POLICY/xccdf_policy_remediate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/XCCDF_POLICY/xccdf_policy_remediate.c b/src/XCCDF_POLICY/xccdf_policy_remediate.c index 1dc30720d1..b435f89e5a 100644 --- a/src/XCCDF_POLICY/xccdf_policy_remediate.c +++ b/src/XCCDF_POLICY/xccdf_policy_remediate.c @@ -707,7 +707,7 @@ struct blueprint_customizations { static inline int _parse_blueprint_fix(const char *fix_text, struct blueprint_customizations *customizations) { - char *err; + char *err = NULL; int errofs; int ret = 0; @@ -768,6 +768,7 @@ static inline int _parse_blueprint_fix(const char *fix_text, struct blueprint_cu } exit: + oscap_pcre_err_free(err); for (int i = 0; tab[i].pattern != NULL; i++) oscap_pcre_free(tab[i].re);