From c2a75094b58cc11b4985a00e3e6bb4fd341b4cb1 Mon Sep 17 00:00:00 2001 From: Lev Walkin <vlm@lionet.info> Date: Tue, 14 Mar 2006 11:52:12 +0000 Subject: [PATCH] class field access problem --- ChangeLog | 5 ++++- libasn1compiler/asn1c_misc.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d6150ef5..b140053f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,10 @@ -0.9.21: 2006-Mar-09 +0.9.21: 2006-Mar-14 * skeletons/standard-modules directory is now used for standard types. * Refactored system for parsing Information Object Classes. + * Fixed class field access problem (Test case 98) + (Severity: medim; Security impact: none) 0.9.20: 2006-Mar-06 @@ -476,6 +478,7 @@ SEVERITY. SECURITY IMPACT. This term applies to the amount of potential damage a bug exploitation could cause. + none: No malicious exploitation is possible. low: The local exploitation is unlikely; the remote exploitation is impossible. medium: The remote exploitation is possible when a particular ASN.1 diff --git a/libasn1compiler/asn1c_misc.c b/libasn1compiler/asn1c_misc.c index 779426aa..8805347b 100644 --- a/libasn1compiler/asn1c_misc.c +++ b/libasn1compiler/asn1c_misc.c @@ -131,6 +131,8 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { while(top_parent->parent_expr) top_parent = top_parent->parent_expr; + DEBUG("asn1c_type_name(%s: 0x%x)", expr->Identifier, expr->expr_type); + switch(expr->expr_type) { case A1TC_REFERENCE: typename = expr->reference->components[ @@ -144,7 +146,7 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { */ tmp.expr = asn1f_class_access_ex(arg->asn, arg->expr->module, arg->expr, expr->reference); - if(tmp.expr) return NULL; + if(!tmp.expr) return NULL; return asn1c_type_name(&tmp, tmp.expr, _format); } -- GitLab