]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Leaks in tools
authorWillem Toorop <willem@nlnetlabs.nl>
Thu, 11 Jul 2019 13:29:03 +0000 (15:29 +0200)
committerWillem Toorop <willem@nlnetlabs.nl>
Thu, 11 Jul 2019 13:29:03 +0000 (15:29 +0200)
drill/dnssec.c
examples/ldns-dpa.c

index b8074be03cc5e9ce82453edae0d296576d1ee908..d41704925dd1508a313ee8cc5fcfa2280d3e1f32 100644 (file)
@@ -453,6 +453,7 @@ ldns_nsec3_closest_encloser(ldns_rdf *qname, ldns_rr_type qtype, ldns_rr_list *n
                }
 
                if (ldns_dname_cat(hashed_sname, zone_name) != LDNS_STATUS_OK){
+                       ldns_rdf_deep_free(hashed_sname);
                        goto done;
                }
 
index 1fc54d3118bd1803a585ec9e6bd703bbbde7ca04..0a6c07009c946a6c1e5ac746061fcdb390a325ba 100644 (file)
@@ -1740,6 +1740,7 @@ parse_match_expression(char *string)
                        free(left_str);
                        if (i >= strlen(str)-1) {
                                result = expr->left;
+                               free_match_expression(expr);
                                goto done;
                        }
                } else if (str[i] == ')') {
@@ -2171,16 +2172,16 @@ printf("timeval: %u ; %u\n", cur_hdr.ts.tv_sec, cur_hdr.ts.tv_usec);
                                if (ldns_str2rdf_a(&src_addr, astr) == LDNS_STATUS_OK) {
                                        
                                }
-                               free(astr);
                        }
+                       free(astr);
                        ap = (uint8_t *) &(iptr->ip_dst);
                        astr = malloc(INET_ADDRSTRLEN);
                        if (inet_ntop(AF_INET, ap, astr, INET_ADDRSTRLEN)) {
                                if (ldns_str2rdf_a(&dst_addr, astr) == LDNS_STATUS_OK) {
                                        
                                }
-                               free(astr);
                        }
+                       free(astr);
 
                        ip_hdr_size = (int) iptr->ip_hl * 4;
                        protocol = (uint8_t) iptr->ip_p;
@@ -2458,10 +2459,10 @@ parse_match_list(match_counters *counters, char *string)
                                strncpy(substring, &string[lastpos], i - lastpos + 1);
                                substring[i - lastpos] = '\0';
                                expr = parse_match_expression(substring);
+                               free(substring);
                                if (!expr) {
                                        return false;
                                }
-                               free(substring);
                                /*
                                if (expr->op != MATCH_EXPR_LEAF) {
                                        fprintf(stderr, "Matchlist can only contain <match>, not a logic expression\n");
@@ -2480,6 +2481,7 @@ parse_match_list(match_counters *counters, char *string)
 
        if (!expr) {
                fprintf(stderr, "Bad match: %s\n", substring);
+               free(substring);
                return false;
        }
        free(substring);
@@ -2522,6 +2524,7 @@ parse_uniques(match_id ids[], size_t *count, char *string)
                                *count = *count + 1;
                        } else {
                                printf("Error parsing match list; unknown match name: %s\n", strpart);
+                               free(str);
                                return false;
                        }
                        free(strpart);