]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
small fix in parsing CERT records
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Tue, 5 Dec 2006 13:51:27 +0000 (13:51 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Tue, 5 Dec 2006 13:51:27 +0000 (13:51 +0000)
small fix in the reading of key-singing keys and ldns-signzone
small fix when reading bad zone file

examples/ldns-signzone.c
keys.c
rdata.c
rr.c
str2host.c

index 4e0590a63d88dcd75da75acfdfdc3b58d6118883..b7c9722cdcc06cb346fbc9ca952aee5d612c6db7 100644 (file)
@@ -256,6 +256,7 @@ main(int argc, char *argv[])
                                                        LDNS_STATUS_OK) {
                                                ldns_key_set_pubkey_owner(key, ldns_rdf_clone(ldns_rr_owner(pubkey)));
                                                ldns_key_set_flags(key, ldns_rdf2native_int16(ldns_rr_rdf(pubkey, 0)));
+                                               ldns_key_set_keytag(key, ldns_calc_keytag(pubkey));
                                        }
                                        ldns_key_list_push_key(keys, key);
                                        ldns_zone_push_rr(orig_zone, ldns_rr_clone(pubkey));
diff --git a/keys.c b/keys.c
index 617baf8b05999372228ec96d34598f15224d9b18..89fc709b663f1adf4b5c21e215308ba5885a108e 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -140,7 +140,6 @@ ldns_key_new_frm_fp_l(ldns_key **key, FILE *fp, int *line_nr)
        }
 
        key_rr = ldns_key2rr(k);
-
        ldns_key_set_keytag(k, ldns_calc_keytag(key_rr));
        ldns_rr_free(key_rr);
        if (key) {
diff --git a/rdata.c b/rdata.c
index 4a3bac7b60a9f62ec26722763e5da6fb6c8243d2..126b210a42dd28ec5e887ac13324aa74828d2eb6 100644 (file)
--- a/rdata.c
+++ b/rdata.c
@@ -298,7 +298,7 @@ ldns_rdf_new_frm_str(ldns_rdf_type type, const char *str)
                status = LDNS_STATUS_ERR;
                break;
        }
-       if (LDNS_STATUS_OK != status) {
+       if (LDNS_STATUS_OK != status || !rdf) {
                return NULL;
        } else {
                ldns_rdf_set_type(rdf, type);
diff --git a/rr.c b/rr.c
index 9949d4e7f5008d2a6b42596d41e77d7e206fbb18..692f438f531f064265d475a67085871c1c50d76f 100644 (file)
--- a/rr.c
+++ b/rr.c
@@ -498,10 +498,6 @@ ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint16_t *default_ttl, ldns_rdf
                 return LDNS_STATUS_MEM_ERR;
         }
 
-       if (line_nr) {
-               *line_nr = *line_nr + 1;
-       }
-
         /* read an entire line in from the file */
         if ((size = ldns_fget_token_l(fp, line, LDNS_PARSE_SKIP_SPACE, LDNS_MAX_LINELEN, line_nr)) == -1) {
                LDNS_FREE(line);
index 100312078d0f467bbb3fae244278e6c1f4393563..8c45498ad277bf1dead4143022534a72736987f3 100644 (file)
@@ -588,25 +588,26 @@ ldns_str2rdf_cert_alg(ldns_rdf **rd, const char *str)
 {
        ldns_lookup_table *lt;
        ldns_status st;
-       uint8_t id = 0;
+       uint8_t idd[2];
        lt = ldns_lookup_by_name(ldns_cert_algorithms, str);
        st = LDNS_STATUS_OK;
 
        if (lt) {
-               id = (uint8_t) lt->id;
-               /* it was given as a integer */
+               ldns_write_uint16(idd, (uint16_t) lt->id);
                *rd = ldns_rdf_new_frm_data(
-                       LDNS_RDF_TYPE_INT8, sizeof(uint8_t), &id);
+                       LDNS_RDF_TYPE_INT16, sizeof(uint16_t), idd);
                if (!*rd) {
                        st = LDNS_STATUS_ERR;
                }
        } else {
                /* try as-is (a number) */
-               st = ldns_str2rdf_int8(rd, str);
-       }
-       if (ldns_rdf2native_int8(*rd) == 0) {
-               st = LDNS_STATUS_CERT_BAD_ALGORITHM;
+               st = ldns_str2rdf_int16(rd, str);
+               if (st = LDNS_STATUS_OK &&
+                   ldns_rdf2native_int16(*rd) == 0) {
+                       st = LDNS_STATUS_CERT_BAD_ALGORITHM;
+               }
        }
+
        return st;
 }