diff options
author | vlm <vlm@59561ff5-6e30-0410-9f3c-9617f08c8826> | 2005-01-22 16:02:45 +0000 |
---|---|---|
committer | vlm <vlm@59561ff5-6e30-0410-9f3c-9617f08c8826> | 2005-01-22 16:02:45 +0000 |
commit | 1cc17970809f80ba1c1c1751ee041c53923173b6 (patch) | |
tree | 67fa8c3e89056712c8c7ad93429b4b3e7ca2d0f3 /libasn1fix | |
parent | bdf4e0d0d0940e649df7bf32738533ac4c9aea34 (diff) |
fixed field lookup code
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@611 59561ff5-6e30-0410-9f3c-9617f08c8826
Diffstat (limited to 'libasn1fix')
-rw-r--r-- | libasn1fix/asn1fix_class.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libasn1fix/asn1fix_class.c b/libasn1fix/asn1fix_class.c index 98d47f44..05c32271 100644 --- a/libasn1fix/asn1fix_class.c +++ b/libasn1fix/asn1fix_class.c @@ -117,6 +117,9 @@ asn1f_class_object_category(asn1p_expr_t *expr) { static field_category_e asn1f_class_field_category(asn1p_expr_t *ofield) { + + assert(ofield); + if(ofield->Identifier[0] != '&') { assert(ofield->Identifier[0] == '&'); return OFC_INVALID; @@ -194,10 +197,12 @@ asn1f_class_dot_lookup(arg_t *arg, asn1p_expr_t *obj, asn1p_ref_t *ref) { ofield = asn1f_lookup_child(obj, comp_name); if(ofield == NULL) { - DEBUG("Cannot find field \"%s\" in \"%s\" at line %d", + FATAL("Cannot find field \"%s\" in \"%s\" at line %d", ref->components[1].name, obj->Identifier, obj->_lineno); + errno = EPERM; + return NULL; } /* |