Page MenuHomeFreeBSD

krb5: Fix handling of transient crypto request failures
ClosedPublic

Authored by markj on Wed, May 7, 12:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, May 20, 11:02 PM
Unknown Object (File)
Tue, May 13, 9:29 AM
Unknown Object (File)
Mon, May 12, 7:23 PM
Unknown Object (File)
Mon, May 12, 3:34 PM
Unknown Object (File)
Mon, May 12, 6:44 AM
Unknown Object (File)
Mon, May 12, 5:34 AM
Unknown Object (File)
Fri, May 9, 1:52 AM
Subscribers

Details

Summary
  • Instead of using CRYPTO_F_DONE to decide whether a request has completed, use a custom protocol of setting crp_opaque = NULL in the callback and checking that instead. CRYPTO_F_DONE is set independent of whether an error occurred, but for transient errors signaled by EAGAIN, we want to simply retry the request.
  • Clear CRYPTO_F_DONE before retrying the request.
  • Panic if the request truly failed, as we currently have no way to pass hard errors back up.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63991
Build 60875: arc lint + arc unit