aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/50-constraint-OK.asn15
-rw-r--r--tests/50-constraint-OK.asn1.-EFprint-constraintsbin7348 -> 7581 bytes
-rw-r--r--tests/50-constraint-OK.asn1.-P18
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
index 393826de..3a628585 100644
--- a/tests/50-constraint-OK.asn1.-EFprint-constraints
+++ b/tests/50-constraint-OK.asn1.-EFprint-constraints
Binary files differ
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 */