]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
memory stuff
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 24 Aug 2005 12:46:40 +0000 (12:46 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 24 Aug 2005 12:46:40 +0000 (12:46 +0000)
dnssec.c
host2str.c
rdata.c
signzone.c
str2host.c

index 3f17e7d11895576bb2cbcf09bd23b3a8bace877b..764dfa325912ee11ea5f8346b11340a9d1fdb79e 100644 (file)
--- a/dnssec.c
+++ b/dnssec.c
@@ -1237,7 +1237,7 @@ ldns_create_nsec(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs)
        ldns_rr *i_rr;
 
        uint8_t *bitmap = LDNS_XMALLOC(uint8_t, 1);
-       uint16_t bm_len = 1;
+       uint16_t bm_len = 0;
        uint16_t i_type;
 
        ldns_rr *nsec = NULL;
@@ -1262,8 +1262,8 @@ ldns_create_nsec(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs)
                                     ldns_rr_owner(i_rr)) == 0) {
                        /* add type to bitmap */
                        i_type = ldns_rr_get_type(i_rr);
-                       if (i_type / 8 > bm_len) {
-                               bitmap = LDNS_XREALLOC(bitmap, uint8_t, i_type / 8);
+                       if ((i_type / 8) + 1 > bm_len) {
+                               bitmap = LDNS_XREALLOC(bitmap, uint8_t, (i_type / 8) + 1);
                                /* set to 0 */
                                for (; bm_len <= i_type / 8; bm_len++) {
                                        bitmap[bm_len] = 0;
@@ -1275,7 +1275,7 @@ ldns_create_nsec(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs)
        /* add NSEC and RRSIG anyway */
        i_type = LDNS_RR_TYPE_RRSIG;
        if (i_type / 8 > bm_len) {
-               bitmap = LDNS_XREALLOC(bitmap, uint8_t, i_type / 8);
+               bitmap = LDNS_XREALLOC(bitmap, uint8_t, (i_type / 8) + 1);
                /* set to 0 */
                for (; bm_len <= i_type / 8; bm_len++) {
                        bitmap[bm_len] = 0;
@@ -1285,7 +1285,7 @@ ldns_create_nsec(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs)
        i_type = LDNS_RR_TYPE_NSEC;
 
        if (i_type / 8 > bm_len) {
-               bitmap = LDNS_XREALLOC(bitmap, uint8_t, i_type / 8);
+               bitmap = LDNS_XREALLOC(bitmap, uint8_t, (i_type / 8) + 1);
                /* set to 0 */
                for (; bm_len <= i_type / 8; bm_len++) {
                        bitmap[bm_len] = 0;
index ac65f2a74835402401e907cf46136cabae4a49d6..8f6d307bdc43a25afca6000f6f93db9c363dec14 100644 (file)
@@ -428,7 +428,7 @@ ldns_rdf2buffer_str_wks(ldns_buffer *output, ldns_rdf *rdf)
        }
 
        for (current_service = 0; 
-            current_service < ldns_rdf_size(rdf) * 8;
+            current_service < ldns_rdf_size(rdf) * 7;
             current_service++) {
                if (ldns_get_bit(&(ldns_rdf_data(rdf)[1]), current_service)) {
                        service = getservbyport((int) ntohs(current_service),
diff --git a/rdata.c b/rdata.c
index 9e13cfcf71da628f4a0317e361dee5780b0ddb24..b2dad32ac077700b648699b64993c2acd84477cf 100644 (file)
--- a/rdata.c
+++ b/rdata.c
@@ -284,7 +284,9 @@ void
 ldns_rdf_deep_free(ldns_rdf *rd)
 {
        if (rd) {
-               LDNS_FREE(rd->_data);
+               if (rd->_data) {
+                       LDNS_FREE(rd->_data);
+               }
                LDNS_FREE(rd);
        }
 }
index b4c793dc5d3766a6dd46f3abad0ee07baa98d0fd..6989e7f700e2cb5095d65b3ebdaed63925571764 100644 (file)
@@ -82,10 +82,10 @@ struct tm tm;
                /*origin = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME, ".");*/
                origin = ldns_rr_owner(orig_soa);
        }
-
        
        keys = ldns_key_list_new();
 
+
        argi = 2;
        while (argi < argc) {
                keyfile = fopen(argv[argi], "r");
@@ -126,14 +126,10 @@ strftime(date_buf, 15, "%Y%m%d%H%M%S", &tm);
                usage(stderr, argv[0]);
                return 1;
        }
-
                        
        signed_zone = ldns_zone_sign(orig_zone, keys);
        
        if (signed_zone) {
-               /*
-               printf("SIGNED ZONE:\n");
-               */
                ldns_zone_print(stdout, signed_zone);
                ldns_zone_deep_free(signed_zone);
        } else {
@@ -142,7 +138,5 @@ strftime(date_buf, 15, "%Y%m%d%H%M%S", &tm);
        ldns_zone_deep_free(orig_zone);
        
        ldns_key_list_free(keys);
-       ldns_rdf_deep_free(origin);
-       
         return 0;
 }
index d39d50c5d6828fb51f114bd0ff78fa2482ece0e8..8476c1615e3bdfaced7f3e5ebaffae81da683580 100644 (file)
@@ -804,7 +804,7 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
                                serv_port = atoi(token);
                        }
                        if (serv_port / 8 > bm_len) {
-                               bitmap = LDNS_XREALLOC(bitmap, uint8_t, serv_port / 8);
+                               bitmap = LDNS_XREALLOC(bitmap, uint8_t, (serv_port / 8) + 1);
                                /* set to zero to be sure */
                                for (; bm_len <= serv_port / 8; bm_len++) {
                                /*