aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1fix/asn1fix_value.c
diff options
context:
space:
mode:
Diffstat (limited to 'libasn1fix/asn1fix_value.c')
-rw-r--r--libasn1fix/asn1fix_value.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libasn1fix/asn1fix_value.c b/libasn1fix/asn1fix_value.c
index 161d9a38..18d86866 100644
--- a/libasn1fix/asn1fix_value.c
+++ b/libasn1fix/asn1fix_value.c
@@ -79,6 +79,11 @@ asn1f_value_resolve(arg_t *arg, asn1p_expr_t *expr, const enum asn1p_constraint_
type_expr, val_type_expr);
if(ret == -1) {
switch(type_expr->expr_type) {
+ default:
+ if(!(type_expr->expr_type & ASN_STRING_MASK))
+ break;
+ /* Compatibility rules are not defined */
+ /* Fall through */
case ASN_BASIC_INTEGER:
case ASN_BASIC_ENUMERATED:
FATAL("Incompatible type of \"%s\" (%s) at line %d "
@@ -96,10 +101,8 @@ asn1f_value_resolve(arg_t *arg, asn1p_expr_t *expr, const enum asn1p_constraint_
* We can't deal with OIDs inheritance properly yet.
*/
return 0;
- default:
- break;
}
- WARNING("Incompatible type of \"%s\" (%s) at line %d "
+ WARNING("Possibly incompatible type of \"%s\" (%s) at line %d "
"with \"%s\" (%s) at line %d",
type_expr->Identifier,
ASN_EXPR_TYPE2STR(type_expr->expr_type),