aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2006-03-14 11:52:12 +0000
committerLev Walkin <vlm@lionet.info>2006-03-14 11:52:12 +0000
commitc2a75094b58cc11b4985a00e3e6bb4fd341b4cb1 (patch)
treed5813e6455c049c44bdf0c2f077e652684b0b7a2
parent6ec10329b9772b1f6c4f655473cb778479fb1e54 (diff)
class field access problem
-rw-r--r--ChangeLog5
-rw-r--r--libasn1compiler/asn1c_misc.c4
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);
}