Module Name: src Committed By: riastradh Date: Sun May 22 11:25:14 UTC 2022
Modified Files: src/sys/opencrypto: crypto.c cryptodev.h Log Message: opencrypto: Make sid=0 always invalid, but OK to free. Previously, crypto_newsession could sometimes return 0 as the driver-specific part of the session id, and 0 as the hid, for sid=0. But netipsec assumes that it is always safe to free sid=0 from zero-initialized memory even if crypto_newsession has never succeeded. So it was up to every driver in tree to gracefully handle sid=0, if it happened to get assigned hid=0. And, as long as the freesession callback was expected to just return an error code when given a bogus session id, that worked out fine...because nothing ever used the error code. That was a terrible fragile system that should never have been invented. Instead, let's just ensure that valid session ids are nonzero, and make crypto_freesession with sid=0 be a no-op. To generate a diff of this commit: cvs rdiff -u -r1.119 -r1.120 src/sys/opencrypto/crypto.c cvs rdiff -u -r1.43 -r1.44 src/sys/opencrypto/cryptodev.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.