]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
src/daemon/cgrulesengd: Correctly check for ENOBUFS when doing recvfrom()
authorIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Tue, 8 Apr 2025 14:01:17 +0000 (17:01 +0300)
committerTom Hromatka <tom.hromatka@oracle.com>
Tue, 8 Apr 2025 14:13:40 +0000 (08:13 -0600)
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 <ivo.g.dimitrov.75@gmail.com>
Acked-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
src/daemon/cgrulesengd.c

index ad49d217516b39525d74d8d750f43e47148290c0..f1e420956e69465019bcc0596c799a8cc5f935f5 100644 (file)
@@ -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;
        }