]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
varlink: use hashmap_ensure_put
authorSusant Sahani <ssahani@vmware.com>
Mon, 18 Jan 2021 12:17:20 +0000 (13:17 +0100)
committerSusant Sahani <ssahani@vmware.com>
Mon, 18 Jan 2021 20:35:28 +0000 (21:35 +0100)
src/shared/varlink.c

index c18081e438ca9d057ce14a3ff722a47e469d778c..274709abd5e7f0f82ef371a7023bae4f29a0bfc9 100644 (file)
@@ -2391,14 +2391,13 @@ int varlink_server_bind_method(VarlinkServer *s, const char *method, VarlinkMeth
         if (startswith(method, "org.varlink.service."))
                 return log_debug_errno(SYNTHETIC_ERRNO(EEXIST), "Cannot bind server to '%s'.", method);
 
-        if (hashmap_ensure_allocated(&s->methods, &string_hash_ops) < 0)
-                return log_oom_debug();
-
         m = strdup(method);
         if (!m)
                 return log_oom_debug();
 
-        r = hashmap_put(s->methods, m, callback);
+        r = hashmap_ensure_put(&s->methods, &string_hash_ops, m, callback);
+        if (r == -ENOMEM)
+                return log_oom_debug();
         if (r < 0)
                 return log_debug_errno(r, "Failed to register callback: %m");
         if (r > 0)