diff options
-rw-r--r-- | tests/50-constraint-OK.asn1 | 5 | ||||
-rw-r--r-- | tests/50-constraint-OK.asn1.-EFprint-constraints | bin | 7348 -> 7581 bytes | |||
-rw-r--r-- | tests/50-constraint-OK.asn1.-P | 18 |
3 files changed, 17 insertions, 6 deletions
diff --git a/tests/50-constraint-OK.asn1 b/tests/50-constraint-OK.asn1 index b8812bc8..d0692c53 100644 --- a/tests/50-constraint-OK.asn1 +++ b/tests/50-constraint-OK.asn1 @@ -45,8 +45,9 @@ BEGIN SIZE-and-FROM ::= PER-Visible (SIZE(1..4) ^ FROM("ABCD")) Neither-SIZE-nor-FROM ::= PER-Visible (SIZE(1..4) | FROM("ABCD",...)) - Utf8-3 ::= Utf8-2 (FROM("A".."Z"|"a".."z")) - Utf8-2 ::= Utf8-1 (SIZE(1..2)) + Utf8-4 ::= UTF8String (FROM("A".."Z"|"a".."z")) -- Alphabet + Utf8-3 ::= Utf8-2 (FROM("A".."Z"|"a".."z")) -- Alphabet and size + Utf8-2 ::= Utf8-1 (SIZE(1..2)) -- Size Utf8-1 ::= UTF8String VisibleIdentifier ::= Identifier diff --git a/tests/50-constraint-OK.asn1.-EFprint-constraints b/tests/50-constraint-OK.asn1.-EFprint-constraints Binary files differindex 393826de..3a628585 100644 --- a/tests/50-constraint-OK.asn1.-EFprint-constraints +++ b/tests/50-constraint-OK.asn1.-EFprint-constraints diff --git a/tests/50-constraint-OK.asn1.-P b/tests/50-constraint-OK.asn1.-P index b8c0c353..f3370c24 100644 --- a/tests/50-constraint-OK.asn1.-P +++ b/tests/50-constraint-OK.asn1.-P @@ -2346,8 +2346,13 @@ Utf8_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr, return -1; } - size = UTF8String_length(st, td->name, app_errlog, app_key); - if(size == (size_t)-1) return -1; + size = UTF8String_length(st); + if(size < 0) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } if((size >= 1 && size <= 2) && !check_permitted_alphabet_12(sptr)) { @@ -2476,8 +2481,13 @@ Utf8_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr, return -1; } - size = UTF8String_length(st, td->name, app_errlog, app_key); - if(size == (size_t)-1) return -1; + size = UTF8String_length(st); + if(size < 0) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } if((size >= 1 && size <= 2)) { /* Constraint check succeeded */ |