@@ -120,7 +120,7 @@ ldns_sign_public_buffer(ldns_buffer *sign_buf, ldns_key *current_key)
120
120
121
121
switch (ldns_key_algorithm (current_key )) {
122
122
case LDNS_SIGN_DSA :
123
- case LDNS_DSA_NSEC3 :
123
+ case LDNS_SIGN_DSA_NSEC3 :
124
124
b64rdf = ldns_sign_public_evp (
125
125
sign_buf ,
126
126
ldns_key_evp_key (current_key ),
@@ -357,6 +357,7 @@ ldns_sign_public_dsa(ldns_buffer *to_sign, DSA *key)
357
357
}
358
358
359
359
#ifdef USE_ECDSA
360
+ #ifndef S_SPLINT_S
360
361
static int
361
362
ldns_pkey_is_ecdsa (EVP_PKEY * pkey )
362
363
{
@@ -380,6 +381,7 @@ ldns_pkey_is_ecdsa(EVP_PKEY* pkey)
380
381
EC_KEY_free (ec );
381
382
return 0 ;
382
383
}
384
+ #endif /* splint */
383
385
#endif /* USE_ECDSA */
384
386
385
387
ldns_rdf *
@@ -431,6 +433,7 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
431
433
}
432
434
433
435
/* unfortunately, OpenSSL output is differenct from DNS DSA format */
436
+ #ifndef S_SPLINT_S
434
437
if (EVP_PKEY_type (key -> type ) == EVP_PKEY_DSA ) {
435
438
sigdata_rdf = ldns_convert_dsa_rrsig_asn12rdf (b64sig , siglen );
436
439
#ifdef USE_ECDSA
@@ -443,6 +446,7 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
443
446
sigdata_rdf = ldns_rdf_new_frm_data (LDNS_RDF_TYPE_B64 , siglen ,
444
447
ldns_buffer_begin (b64sig ));
445
448
}
449
+ #endif /* splint */
446
450
ldns_buffer_free (b64sig );
447
451
EVP_MD_CTX_cleanup (& ctx );
448
452
return sigdata_rdf ;
@@ -640,7 +644,10 @@ ldns_dnssec_zone_create_nsecs(ldns_dnssec_zone *zone,
640
644
next_name ,
641
645
LDNS_RR_TYPE_NSEC );
642
646
ldns_rr_set_ttl (nsec_rr , nsec_ttl );
643
- ldns_dnssec_name_add_rr (cur_name , nsec_rr );
647
+ if (ldns_dnssec_name_add_rr (cur_name , nsec_rr )!= LDNS_STATUS_OK ){
648
+ ldns_rr_free (nsec_rr );
649
+ return LDNS_STATUS_ERR ;
650
+ }
644
651
ldns_rr_list_push_rr (new_rrs , nsec_rr );
645
652
cur_node = next_node ;
646
653
if (cur_node ) {
@@ -656,7 +663,10 @@ ldns_dnssec_zone_create_nsecs(ldns_dnssec_zone *zone,
656
663
next_name ,
657
664
LDNS_RR_TYPE_NSEC );
658
665
ldns_rr_set_ttl (nsec_rr , nsec_ttl );
659
- ldns_dnssec_name_add_rr (cur_name , nsec_rr );
666
+ if (ldns_dnssec_name_add_rr (cur_name , nsec_rr )!= LDNS_STATUS_OK ){
667
+ ldns_rr_free (nsec_rr );
668
+ return LDNS_STATUS_ERR ;
669
+ }
660
670
ldns_rr_list_push_rr (new_rrs , nsec_rr );
661
671
} else {
662
672
printf ("error\n" );
@@ -727,15 +737,18 @@ ldns_dnssec_zone_create_nsec3s(ldns_dnssec_zone *zone,
727
737
ldns_rdf_deep_free (ldns_rr_pop_rdf (nsec_rr ));
728
738
}
729
739
ldns_rr_set_ttl (nsec_rr , nsec_ttl );
730
- ldns_dnssec_name_add_rr (current_name , nsec_rr );
740
+ result = ldns_dnssec_name_add_rr (current_name , nsec_rr );
731
741
ldns_rr_list_push_rr (new_rrs , nsec_rr );
732
742
ldns_rr_list_push_rr (nsec3_list , nsec_rr );
733
743
current_name_node = ldns_dnssec_name_node_next_nonglue (
734
744
ldns_rbtree_next (current_name_node ));
735
745
}
746
+ if (result != LDNS_STATUS_OK ) {
747
+ return result ;
748
+ }
736
749
737
750
ldns_rr_list_sort_nsec3 (nsec3_list );
738
- ldns_dnssec_chain_nsec3_list (nsec3_list );
751
+ result = ldns_dnssec_chain_nsec3_list (nsec3_list );
739
752
if (result != LDNS_STATUS_OK ) {
740
753
return result ;
741
754
}
@@ -963,7 +976,7 @@ ldns_dnssec_zone_create_rrsigs_flg(ldns_dnssec_zone *zone,
963
976
siglist = ldns_sign_public (rr_list , key_list );
964
977
for (i = 0 ; i < ldns_rr_list_rr_count (siglist ); i ++ ) {
965
978
if (cur_rrset -> signatures ) {
966
- ldns_dnssec_rrs_add_rr (cur_rrset -> signatures ,
979
+ result = ldns_dnssec_rrs_add_rr (cur_rrset -> signatures ,
967
980
ldns_rr_list_rr (siglist ,
968
981
i ));
969
982
} else {
@@ -998,7 +1011,7 @@ ldns_dnssec_zone_create_rrsigs_flg(ldns_dnssec_zone *zone,
998
1011
999
1012
for (i = 0 ; i < ldns_rr_list_rr_count (siglist ); i ++ ) {
1000
1013
if (cur_name -> nsec_signatures ) {
1001
- ldns_dnssec_rrs_add_rr (cur_name -> nsec_signatures ,
1014
+ result = ldns_dnssec_rrs_add_rr (cur_name -> nsec_signatures ,
1002
1015
ldns_rr_list_rr (siglist , i ));
1003
1016
} else {
1004
1017
cur_name -> nsec_signatures = ldns_dnssec_rrs_new ();
@@ -1044,7 +1057,10 @@ ldns_dnssec_zone_sign_flg(ldns_dnssec_zone *zone,
1044
1057
}
1045
1058
1046
1059
/* zone is already sorted */
1047
- ldns_dnssec_zone_mark_glue (zone );
1060
+ result = ldns_dnssec_zone_mark_glue (zone );
1061
+ if (result != LDNS_STATUS_OK ) {
1062
+ return result ;
1063
+ }
1048
1064
1049
1065
/* check whether we need to add nsecs */
1050
1066
if (zone -> names && !((ldns_dnssec_name * )zone -> names -> root -> data )-> nsec ) {
@@ -1097,14 +1113,20 @@ ldns_dnssec_zone_sign_nsec3_flg(ldns_dnssec_zone *zone,
1097
1113
ldns_status result = LDNS_STATUS_OK ;
1098
1114
1099
1115
/* zone is already sorted */
1100
- ldns_dnssec_zone_mark_glue (zone );
1116
+ result = ldns_dnssec_zone_mark_glue (zone );
1117
+ if (result != LDNS_STATUS_OK ) {
1118
+ return result ;
1119
+ }
1101
1120
1102
1121
/* TODO if there are already nsec3s presents and their
1103
1122
* parameters are the same as these, we don't have to recreate
1104
1123
*/
1105
1124
if (zone -> names ) {
1106
1125
/* add empty nonterminals */
1107
- ldns_dnssec_zone_add_empty_nonterminals (zone );
1126
+ result = ldns_dnssec_zone_add_empty_nonterminals (zone );
1127
+ if (result != LDNS_STATUS_OK ) {
1128
+ return result ;
1129
+ }
1108
1130
1109
1131
nsec3 = ((ldns_dnssec_name * )zone -> names -> root -> data )-> nsec ;
1110
1132
if (nsec3 && ldns_rr_get_type (nsec3 ) == LDNS_RR_TYPE_NSEC3 ) {
@@ -1127,7 +1149,10 @@ ldns_dnssec_zone_sign_nsec3_flg(ldns_dnssec_zone *zone,
1127
1149
/* always set bit 7 of the flags to zero, according to
1128
1150
* rfc5155 section 11 */
1129
1151
ldns_set_bit (ldns_rdf_data (ldns_rr_rdf (nsec3params , 1 )), 7 , 0 );
1130
- ldns_dnssec_zone_add_rr (zone , nsec3params );
1152
+ result = ldns_dnssec_zone_add_rr (zone , nsec3params );
1153
+ if (result != LDNS_STATUS_OK ) {
1154
+ return result ;
1155
+ }
1131
1156
ldns_rr_list_push_rr (new_rrs , nsec3params );
1132
1157
}
1133
1158
result = ldns_dnssec_zone_create_nsec3s (zone ,
0 commit comments