diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-11-11 08:36:09 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-11-11 08:36:09 +0000 |
commit | d9cb43769c4af69e40586b99c8baf45c33595a57 (patch) | |
tree | 3c70bf305596e48c1314dea739457acede448272 /lib/minitasn1/structure.c | |
parent | 190ff952e2828dd976cc86fa7b9ff8ca256738be (diff) | |
download | gnutls-d9cb43769c4af69e40586b99c8baf45c33595a57.tar.gz |
updated to the new libtasn1.
Diffstat (limited to 'lib/minitasn1/structure.c')
-rw-r--r-- | lib/minitasn1/structure.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/minitasn1/structure.c b/lib/minitasn1/structure.c index 9eda93373f..97f11d4cb9 100644 --- a/lib/minitasn1/structure.c +++ b/lib/minitasn1/structure.c @@ -342,7 +342,7 @@ node_asn * _asn1_copy_structure3(node_asn *source_node) { node_asn *dest_node,*p_s,*p_d,*p_d_prev; - int len,len2,move; + int len,len2,move, tlen; if(source_node==NULL) return NULL; @@ -365,7 +365,10 @@ _asn1_copy_structure3(node_asn *source_node) _asn1_set_value(p_d,p_s->value,len+len2); break; default: - _asn1_set_value(p_d,p_s->value,strlen(p_s->value)+1); + tlen = strlen(p_s->value); + + if (tlen > 0) + _asn1_set_value(p_d,p_s->value,tlen+1); } } move=DOWN; @@ -419,7 +422,7 @@ asn1_retCode _asn1_type_choice_config(node_asn *node) { node_asn *p,*p2,*p3,*p4; - int move; + int move,tlen; if(node==NULL) return ASN1_ELEMENT_NOT_FOUND; @@ -438,7 +441,9 @@ _asn1_type_choice_config(node_asn *node) while(p3){ if(type_field(p3->type)==TYPE_TAG){ p4=_asn1_add_node_only(p3->type); - _asn1_set_value(p4,p3->value,strlen(p3->value)+1); + tlen = strlen(p3->value); + if (tlen > 0) + _asn1_set_value(p4,p3->value,tlen+1); _asn1_set_right(p4,p2->down); _asn1_set_down(p2,p4); } |