]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev-rules: use ordered_hashmap_ensure_put
authorSusant Sahani <ssahani@vmware.com>
Wed, 20 Jan 2021 14:13:02 +0000 (15:13 +0100)
committerSusant Sahani <ssahani@vmware.com>
Wed, 20 Jan 2021 14:13:02 +0000 (15:13 +0100)
src/udev/udev-rules.c

index db4f79fc9ac935bef052a9893dfa3efa7c82b9c7..66eef11d053888e317d2d6c125fb1c6f2974e505 100644 (file)
@@ -2147,19 +2147,17 @@ static int udev_rule_apply_token_to_event(
                 if (IN_SET(token->op, OP_ASSIGN, OP_ASSIGN_FINAL))
                         ordered_hashmap_clear_free_key(event->run_list);
 
-                r = ordered_hashmap_ensure_allocated(&event->run_list, NULL);
-                if (r < 0)
-                        return log_oom();
-
                 (void) udev_event_apply_format(event, token->value, buf, sizeof(buf), false);
 
                 cmd = strdup(buf);
                 if (!cmd)
                         return log_oom();
 
-                r = ordered_hashmap_put(event->run_list, cmd, token->data);
-                if (r < 0)
+                r = ordered_hashmap_ensure_put(&event->run_list, NULL, cmd, token->data);
+                if (r == -ENOMEM)
                         return log_oom();
+                if (r < 0)
+                        return log_rule_error_errno(dev, rules, r, "Failed to store command '%s': %m", cmd);
 
                 TAKE_PTR(cmd);