[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. |