From 0b7fb74cb02fac393cd5ef1ad5bc0878bd486b63 Mon Sep 17 00:00:00 2001 From: Kenny PH Hsieh Date: Tue, 10 Nov 2026 11:58:34 +0800 Subject: [PATCH] mctp-netlink: Return -errno from mctp_nl_send() on send failure mctp_nl_send() has two error paths. When the kernel rejects the request, handle_nlmsg_ack() returns a negative errno. When sendto() itself fails, mctp_nl_send() returns sendto()'s -1 and leaves the reason in errno. Callers expect a negative errno. For example, mctpd prints strerror(-rc) when mctp_nl_route_add() or mctp_nl_route_del() fails, so a failed sendto() is logged as "Operation not permitted" (EPERM) whatever the real error was. Return -errno from the sendto() path too, so both paths report errors the same way. Signed-off-by: Kenny PH Hsieh --- src/mctp-netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mctp-netlink.c b/src/mctp-netlink.c index 9cd1571d..dd49a289 100644 --- a/src/mctp-netlink.c +++ b/src/mctp-netlink.c @@ -594,7 +594,7 @@ int mctp_nl_send(mctp_nl *nl, struct nlmsghdr *msg) rc = mctp_ops.nl.sendto(nl->sd, msg, msg->nlmsg_len, 0, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) - return rc; + return -errno; if (rc != (int)msg->nlmsg_len) warnx("sendto: short send (%d, expected %d)", rc,