diff options
author | Lev Walkin <vlm@lionet.info> | 2005-03-29 19:04:24 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2005-03-29 19:04:24 +0000 |
commit | 7ef83a454f6b1e6d7b7f4f85d5968346e93cbc4c (patch) | |
tree | babc733db0705c3e0333bbf4d047a728ee08daa9 /libasn1compiler | |
parent | fc7764376582dcc4602c36293d12d67f4184f199 (diff) |
deeper validation
Diffstat (limited to 'libasn1compiler')
-rw-r--r-- | libasn1compiler/asn1c_C.c | 2 | ||||
-rw-r--r-- | libasn1compiler/asn1c_constraint.c | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index 7d66b1b1..a2a09f27 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -1067,7 +1067,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { OUT("td->elements_count = asn_DEF_%s.elements_count;\n", type_name); if(etd_spec != ETD_NO_SPECIFICS) { INDENT(-1); - OUT(" /* "); + OUT(" /* "); } OUT("td->specifics = asn_DEF_%s.specifics;", type_name); if(etd_spec == ETD_NO_SPECIFICS) { diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c index 0729d08e..78097838 100644 --- a/libasn1compiler/asn1c_constraint.c +++ b/libasn1compiler/asn1c_constraint.c @@ -170,8 +170,17 @@ asn1c_emit_constraint_checking_code(arg_t *arg) { INDENT(-1); OUT(") {\n"); INDENT(+1); - OUT("/* Constraint check succeeded */\n"); - OUT("return 0;\n"); + switch(etype) { + case ASN_CONSTR_SEQUENCE_OF: + OUT("/* SEQUENCE validation code is the same as SET */\n"); + case ASN_CONSTR_SET_OF: + OUT("/* Perform validation of the inner elements */\n"); + OUT("return SET_OF_constraint(td, list, app_errlog, app_key);\n"); + break; + default: + OUT("/* Constraint check succeeded */\n"); + OUT("return 0;\n"); + } INDENT(-1); OUT("} else {\n"); INDENT(+1); |