There's no need to update the pointer and remaining length before leaving or calling the SHA1 sub function. Additionnaly, the partial block code could be looking more like the full block handling branch. Signed-off-by: Yann Droneaud <ydroneaud@xxxxxxxxxx> --- block-sha1/sha1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block-sha1/sha1.c b/block-sha1/sha1.c index a8d4bf9..c1af112 100644 --- a/block-sha1/sha1.c +++ b/block-sha1/sha1.c @@ -248,11 +248,11 @@ void blk_SHA1_Update(blk_SHA_CTX *ctx, const void *data, unsigned long len) left = len; memcpy(lenW + (char *)ctx->W, data, left); lenW = (lenW + left) & 63; - len -= left; - data = ((const char *)data + left); if (lenW) return; blk_SHA1_Block(ctx, ctx->W); + data = ((const char *)data + left); + len -= left; } while (len >= 64) { blk_SHA1_Block(ctx, data); -- 1.7.11.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html