Page MenuHomeFreeBSD

uefisign: fix handling of errors from child proc
ClosedPublic

Authored by vangyzen on Apr 6 2021, 2:53 PM.
Tags
None
Referenced Files
F102677094: D29605.diff
Fri, Nov 15, 5:52 PM
Unknown Object (File)
Mon, Nov 11, 3:06 AM
Unknown Object (File)
Mon, Nov 11, 2:31 AM
Unknown Object (File)
Mon, Nov 11, 1:53 AM
Unknown Object (File)
Mon, Nov 11, 1:51 AM
Unknown Object (File)
Mon, Nov 11, 1:17 AM
Unknown Object (File)
Sep 25 2024, 2:20 AM
Unknown Object (File)
Sep 24 2024, 8:54 PM
Subscribers

Details

Summary

Close the unused pipe file descriptors so the parent will notice if
the child exits prematurely. Previously, the parent would block
forever on a read from the pipe.

$ uefisign -c foo.cert -k foo.key -o loader.efi loader.efi.unsigned
uefisign: section points inside the headers
load: 0.06  cmd: uefisign 4502 [piperd] 7.25r 0.00u 0.00s 0% 5968k
... _sleep+0x1be pipe_read+0x3d6 kern_readv+0x8c sys_read+0x83 ...

Sponsored by: Dell EMC Isilon
MFC after: 1 week

Test Plan

It exits immediately in the above error case.

Diff Detail

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