summaryrefslogtreecommitdiff
path: root/lib/minitasn1/structure.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2004-11-11 08:36:09 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2004-11-11 08:36:09 +0000
commitd9cb43769c4af69e40586b99c8baf45c33595a57 (patch)
tree3c70bf305596e48c1314dea739457acede448272 /lib/minitasn1/structure.c
parent190ff952e2828dd976cc86fa7b9ff8ca256738be (diff)
downloadgnutls-d9cb43769c4af69e40586b99c8baf45c33595a57.tar.gz
updated to the new libtasn1.
Diffstat (limited to 'lib/minitasn1/structure.c')
-rw-r--r--lib/minitasn1/structure.c13
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);
}