On Sun, Jul 13, 2025 at 03:05:16PM +0000, Elliott, Robert (Servers) wrote: > > -----Original Message----- > > From: Eric Biggers <ebigg...@kernel.org> > > Sent: Saturday, July 12, 2025 6:23 PM > > Subject: [PATCH 03/26] lib/crypto: sha1: Add SHA-1 library functions > ... > > +static void __maybe_unused sha1_blocks_generic(struct sha1_block_state > > *state, > > + const u8 *data, size_t nblocks) > > +{ > > + u32 workspace[SHA1_WORKSPACE_WORDS]; > > + > > + do { > > + sha1_transform(state->h, data, workspace); > > + data += SHA1_BLOCK_SIZE; > > + } while (--nblocks); > > + > > + memzero_explicit(workspace, sizeof(workspace)); > > +} > > That assumes the caller will never pass nblocks of 0... should that be > checked first?
No. This is a static function, and it's easy to verify that all callers pass a positive nblocks. All these code paths are also well-covered by sha1_kunit. Also, lib/crypto/sha256.c and lib/crypto/sha512.c do the exact same thing. Also, most of the architecture-specfiic implementations of sha{1,256,512}_blocks() assume positive nblocks too. - Eric