From: Ivaylo Dimitrov Date: Tue, 8 Apr 2025 14:01:17 +0000 (+0300) Subject: src/daemon/cgrulesengd: Correctly check for ENOBUFS when doing recvfrom() X-Git-Tag: v3.2.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aaf329d630562bdd17b8edbc45039a7d4a5a0cf8;p=thirdparty%2Flibcgroup.git 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 --- 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; }