Blame SOURCES/opencryptoki-3.19.0-fix-memory-leak.patch

9514f7
commit cb4d7b125c7166602cb9094497a201b2f5a56985
9514f7
Author: Ingo Franzki <ifranzki@linux.ibm.com>
9514f7
Date:   Tue Oct 4 13:21:32 2022 +0200
9514f7
9514f7
    pkcsicsf: Fix memory leak
9514f7
    
9514f7
    Use confignode_deepfree() to also free appended config nodes.
9514f7
    
9514f7
    Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
9514f7
9514f7
diff --git a/usr/sbin/pkcsicsf/pkcsicsf.c b/usr/sbin/pkcsicsf/pkcsicsf.c
9514f7
index 44f5ef34..b02d1fe5 100644
9514f7
--- a/usr/sbin/pkcsicsf/pkcsicsf.c
9514f7
+++ b/usr/sbin/pkcsicsf/pkcsicsf.c
9514f7
@@ -129,7 +129,8 @@ static void add_token_config_entry(struct ConfigIdxStructNode *s, char *key, cha
9514f7
         return;
9514f7
 
9514f7
     v = confignode_allocstringvaldumpable(key, value, 0, NULL);
9514f7
-    confignode_append(s->value, &v->base);
9514f7
+    if (v != NULL)
9514f7
+        confignode_append(s->value, &v->base);
9514f7
 }
9514f7
 
9514f7
 static int add_token_config(const char *configname,
9514f7
@@ -150,7 +151,7 @@ static int add_token_config(const char *configname,
9514f7
             confignode_freeeoc(eoc1);
9514f7
             confignode_freeeoc(eoc2);
9514f7
         }
9514f7
-        confignode_freeidxstruct(s);
9514f7
+        confignode_deepfree(&s->base);
9514f7
         fprintf(stderr, "Failed to add an entry for %s token\n", token.name);
9514f7
         return -1;
9514f7
     }
9514f7
@@ -179,7 +180,7 @@ static int add_token_config(const char *configname,
9514f7
     if (tfp == NULL) {
9514f7
         fprintf(stderr, "fopen failed, line %d: %s\n",
9514f7
                 __LINE__, strerror(errno));
9514f7
-        confignode_freeidxstruct(s);
9514f7
+        confignode_deepfree(&s->base);
9514f7
         return -1;
9514f7
     }
9514f7
 
9514f7
@@ -188,7 +189,7 @@ static int add_token_config(const char *configname,
9514f7
     confignode_dump(tfp, &s->base, NULL, 2);
9514f7
 
9514f7
     fclose(tfp);
9514f7
-    confignode_freeidxstruct(s);
9514f7
+    confignode_deepfree(&s->base);
9514f7
 
9514f7
     return 0;
9514f7
 }