HomeFreeBSD

icp: Use explicit_memset() exclusively in gcm_clear_ctx()

Description

icp: Use explicit_memset() exclusively in gcm_clear_ctx()

d634d20d1be31dfa8cf06ef2dc96285baf81a2fb had been intended to fix a
potential information leak issue where the compiler's optimization
passes appeared to remove memset() operations that sanitize sensitive
data before memory is freed for use by the rest of the kernel.

When I wrote it, I had assumed that the compiler would not remove the
other memset() operations, but upon reflection, I have realized that
this was a bad assumption to make. I would rather have a very slight
amount of additional overhead when calling gcm_clear_ctx() than risk a
future compiler remove memset() calls. This is likely to happen if
someone decides to try doing link time optimization and the person will
not think to audit the assembly output for issues like this, so it is
best to preempt the possibility before it happens.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rob Norris <robn@despairlabs.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Jorgen Lundman <lundman@lundman.net>
Signed-off-by: Richard Yao <richard@ryao.dev>
Closes #17343
(cherry picked from commit d8a33bc0a5d3b72ab6a0e7930345705e1d3d954b)

Details

Provenance
Richard Yao <richard@ryao.dev>Authored on May 19 2025, 5:04 PM
Tony Hutter <hutter2@llnl.gov>Committed on May 27 2025, 9:41 PM
Parents
rGb144b160b652: Fix 2 bugs in non-raw send with encryption
Branches
Unknown
Tags
Unknown