* libports/bucket-iterate.c (_ports_bucket_class_iterate): Unlock
_ports_lock on malloc failure.
---
 libports/bucket-iterate.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libports/bucket-iterate.c b/libports/bucket-iterate.c
index 498cf13..babc204 100644
--- a/libports/bucket-iterate.c
+++ b/libports/bucket-iterate.c
@@ -46,7 +46,10 @@ _ports_bucket_class_iterate (struct port_bucket *bucket,
   nr_items = bucket->htable.nr_items;
   p = malloc (nr_items * sizeof *p);
   if (p == NULL)
-    return ENOMEM;
+    {
+      pthread_mutex_unlock (&_ports_lock);
+      return ENOMEM;
+    }
 
   n = 0;
   HURD_IHASH_ITERATE (&bucket->htable, arg)
-- 
2.0.0.rc0


Reply via email to