[LU-6869] libcfs_ukuc_msg_get() returns -errno after read() returns 0 Created: 17/Jul/15  Updated: 30/Jan/22

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.8.0, Lustre 2.15.0
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: John Hammond Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

In libcfs_ukuc_msg_get() we have

int libcfs_ukuc_msg_get(struct lustre_kernelcomm *link, char *buf, int maxsize,
                        int transport)
{
        struct kuc_hdr *kuch;
        int rc = 0;

        memset(buf, 0, maxsize);

        while (1) {
                /* Read header first to get message size */
                rc = read(link->lk_rfd, buf, lhsz);
                if (rc <= 0) {
                        rc = -errno;
                        break;
                }

                ...
        }
        return rc;
}

If read() returned 0 then the contents of errno are arbitrary.


Generated at Sat Feb 10 02:03:59 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.