Page MenuHomeFreeBSD

lio_listio: Don't post a completion notification if none was requested
ClosedPublic

Authored by markj on Jul 15 2021, 6:11 PM.
Tags
None
Referenced Files
F169992647: D31197.diff
Thu, Sep 3, 5:11 AM
F169991784: D31197.id.diff
Thu, Sep 3, 5:07 AM
F169966108: D31197.diff
Thu, Sep 3, 3:16 AM
F169715731: D31197.id92266.diff
Wed, Sep 2, 9:01 AM
Unknown Object (File)
Wed, Sep 2, 1:11 AM
Unknown Object (File)
Tue, Sep 1, 8:18 AM
Unknown Object (File)
Tue, Sep 1, 4:30 AM
Unknown Object (File)
Tue, Sep 1, 3:19 AM
Subscribers

Details

Summary

One is allowed to use LIO_NOWAIT without specifying a sigevent. In this
case, lj->lioj_signal is left uninitialized, but several code paths
examine liov_signal.sigev_notify to figure out which notification to
post. Unconditionally initialize that field to SIGEV_NONE.

Add a dumb test case which triggers the bug.

Reported by: KMSAN+syzkaller
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 40491
Build 37380: arc lint + arc unit