From aaf329d630562bdd17b8edbc45039a7d4a5a0cf8 Mon Sep 17 00:00:00 2001 From: Ivaylo Dimitrov Date: Tue, 8 Apr 2025 17:01:17 +0300 Subject: [PATCH] src/daemon/cgrulesengd: Correctly check for ENOBUFS when doing recvfrom() Currently, code checks if recvfrom() returns ENOBUFS, however, it can never return errno type error code, but -1 on error Fix that by checking errno in case of an error instead Signed-off-by: Ivaylo Dimitrov Acked-by: Kamalesh Babulal Signed-off-by: Tom Hromatka --- src/daemon/cgrulesengd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/daemon/cgrulesengd.c b/src/daemon/cgrulesengd.c index ad49d217..f1e42095 100644 --- a/src/daemon/cgrulesengd.c +++ b/src/daemon/cgrulesengd.c @@ -567,7 +567,7 @@ static int cgre_receive_netlink_msg(int sk_nl) from_nla_len = sizeof(from_nla); recv_len = recvfrom(sk_nl, buff, sizeof(buff), 0, (struct sockaddr *)&from_nla, &from_nla_len); - if (recv_len == ENOBUFS) { + if (recv_len == -1 && errno == ENOBUFS) { flog(LOG_ERR, "ERROR: NETLINK BUFFER FULL, MESSAGE DROPPED!\n"); return 0; } -- 2.47.3