- MonoClassField *field = mono_class_get_field_from_name (mono_object_class (attr), name);
- void *val = load_cattr_value (image, field->type, named, &named);
+ MonoClassField *field;
+ void *val;
+
+ /* how this fail is a blackbox */
+ field = mono_class_get_field_from_name (mono_object_class (attr), name);
+ if (!field) {
+ mono_error_set_generic_error (error, "System.Reflection", "CustomAttributeFormatException", "Could not find a field with name %s", name);
+ g_free (name);
+ goto fail;
+ }
+
+ val = load_cattr_value (image, field->type, named, &named, error);
+ if (!mono_error_ok (error)) {
+ g_free (name);
+ if (!type_is_reference (field->type))
+ g_free (val);
+ goto fail;
+ }
+