From: Susant Sahani Date: Mon, 18 Jan 2021 12:17:20 +0000 (+0100) Subject: varlink: use hashmap_ensure_put X-Git-Tag: v248-rc1~306^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d2d1654c6f8a3b4bfd6afeb9ea2fa8e08c84be9;p=thirdparty%2Fsystemd.git varlink: use hashmap_ensure_put --- diff --git a/src/shared/varlink.c b/src/shared/varlink.c index c18081e438c..274709abd5e 100644 --- a/src/shared/varlink.c +++ b/src/shared/varlink.c @@ -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)