3ac34ca375
If gcm_mode_encrypt_contiguous_blocks() is called more than once in succession, with the accumulated lengths being less than blocksize, ctx->copy_to will be incorrectly advanced. Later, if out is NULL, the bcopy at line 114 will overflow ctx->gcm_copy_to since ctx->gcm_remainder_len is larger than the ctx->gcm_copy_to buffer can hold. The fix is to set ctx->copy_to only if it's not already set. For ZoL the issue may be academic, since in all my testing I wasn't able to hit neither of both conditions needed to trigger it, but other consumers can easily do so. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tom Caputi <tcaputi@datto.com> Signed-off-by: Attila Fülöp <attila@fueloep.org> Closes #9660 |
||
---|---|---|
.. | ||
cbc.c | ||
ccm.c | ||
ctr.c | ||
ecb.c | ||
gcm.c | ||
gcm_generic.c | ||
gcm_pclmulqdq.c | ||
modes.c |