]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Memory leak in ldns_edns_option_list_clone
authorWillem Toorop <willem@nlnetlabs.nl>
Fri, 12 Aug 2022 10:00:21 +0000 (12:00 +0200)
committerWillem Toorop <willem@nlnetlabs.nl>
Fri, 12 Aug 2022 10:00:21 +0000 (12:00 +0200)
edns.c

diff --git a/edns.c b/edns.c
index bdb4bf1cf9ce74a6339b42e85a629a180fa50a0c..3d002d67ed8c8cd8375756be4334b73220501ee2 100644 (file)
--- a/edns.c
+++ b/edns.c
@@ -202,13 +202,13 @@ ldns_edns_option_list_clone(ldns_edns_option_list *old_list)
 
        /* adding options also updates the total options size */
        for (i = 0; i < old_list->_option_count; i++) {
-               if (!(ldns_edns_option_list_push(new_list,
-                       ldns_edns_clone(ldns_edns_option_list_get_option(old_list, i))))){
+               ldns_edns_option *option = ldns_edns_clone(ldns_edns_option_list_get_option(old_list, i));
+               if (!ldns_edns_option_list_push(new_list, option)) {
+                       ldns_edns_deep_free(option);
                        ldns_edns_option_list_deep_free(new_list);
                        return NULL;
                }
        }
-
        return new_list;
 }