Fix refcount leak and return correct error in create_named_object.

This commit is contained in:
Vitaliy Margolen 2005-09-28 12:04:51 +00:00 committed by Alexandre Julliard
parent 8e74308a10
commit 9a7b41ad53
1 changed files with 5 additions and 5 deletions

View File

@ -166,13 +166,13 @@ void *create_named_object( struct namespace *namespace, const struct object_ops
if ((obj = find_object( namespace, name, len ))) if ((obj = find_object( namespace, name, len )))
{ {
if (obj->ops == ops) if (obj->ops != ops)
{ {
set_error( STATUS_OBJECT_NAME_COLLISION ); release_object( obj );
return obj; obj = NULL;
} }
set_error( STATUS_OBJECT_TYPE_MISMATCH ); set_error( STATUS_OBJECT_NAME_COLLISION );
return NULL; return obj;
} }
if (!(name_ptr = alloc_name( name, len ))) return NULL; if (!(name_ptr = alloc_name( name, len ))) return NULL;
if ((obj = alloc_object( ops ))) if ((obj = alloc_object( ops )))