aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1parser/asn1p_constr.c
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-03-20 12:58:00 +0000
committerLev Walkin <vlm@lionet.info>2005-03-20 12:58:00 +0000
commitff7dd147728b6acb90193b5713f4329f752d654f (patch)
tree9002753185e0ae31267972b12d26f3e834977f22 /libasn1parser/asn1p_constr.c
parent7ec9b4c722ba013b44dfd8f51c47207b30aa9451 (diff)
ContainedSubtype support
Diffstat (limited to 'libasn1parser/asn1p_constr.c')
-rw-r--r--libasn1parser/asn1p_constr.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libasn1parser/asn1p_constr.c b/libasn1parser/asn1p_constr.c
index 7a38f3c1..69802698 100644
--- a/libasn1parser/asn1p_constr.c
+++ b/libasn1parser/asn1p_constr.c
@@ -22,6 +22,8 @@ void
asn1p_constraint_free(asn1p_constraint_t *ct) {
if(ct) {
+ if(ct->containedSubtype)
+ asn1p_value_free(ct->containedSubtype);
if(ct->value)
asn1p_value_free(ct->value);
if(ct->range_start)
@@ -59,9 +61,10 @@ asn1p_constraint_clone(asn1p_constraint_t *src) {
clone->type = src->type;
clone->presence = src->presence;
- CLONE(value, asn1p_value_clone);
- CLONE(range_start, asn1p_value_clone);
- CLONE(range_stop, asn1p_value_clone);
+ CLONE(containedSubtype, asn1p_value_clone);
+ CLONE(value, asn1p_value_clone);
+ CLONE(range_start, asn1p_value_clone);
+ CLONE(range_stop, asn1p_value_clone);
for(i = 0; i < src->el_count; i++) {
asn1p_constraint_t *t;
@@ -115,6 +118,8 @@ asn1p_constraint_type2str(enum asn1p_constraint_type_e type) {
switch(type) {
case ACT_INVALID:
return "INVALID";
+ case ACT_EL_TYPE:
+ return "ContainedSubtype";
case ACT_EL_VALUE:
return "SingleValue";
case ACT_EL_RANGE: