Jinoh Kang (@iamahuman) commented about server/mapping.c:
if (root) release_object( root );
}
+static struct mapping *open_object_mapping( user_handle_t handle, struct unicode_str *name ) +{
- static const WCHAR object_mappingW[] = {'_','_','w','i','n','e','_','m','a','p','p','i','n','g'};
- struct mapping *mapping;
- struct object *object;
- if (name->len != sizeof(object_mappingW) || memcmp( name->str, object_mappingW, name->len )) return NULL;
- if (!(object = get_handle_obj( current->process, handle, 0, NULL ))) return NULL;
- mapping = object->ops->get_object_mapping( object );
Can `get_object_mapping` ever fail (except `no_object_mapping`)? If we allow it to fail, should we distinguish this case by making `open_object_mapping` return a boolean instead and returning the mapping via some pass-by-ref out pointer?