Alter sha1close() 3rd argument to request flush only
PATCH 1/1 Alter sha1close() 3rd argument to request flush only
update=0 suppressed writing the final SHA-1 but was not used. Now final=0 suppresses SHA-1 finalization, SHA-1 writing, and closing -- in other words, only flush the buffer.
Signed-off-by Dana L. How <[email protected]>
--- csum-file.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
csum-file.c +5 -3
@@ -29,18 +29,20 @@ static void sha1flush(struct sha1file *f, unsigned int count) } } -int sha1close (struct sha1file *f,unsigned char *result,int update) +int sha1close (struct sha1file *f,unsigned char *result,int final) {unsigned offset = f->offset;if (offset) {SHA1_Update (&f->ctx, f->buffer, offset);sha1flush (f, offset); + f->offset =0 ; } +if (!final) +return 0 ;/* only want to flush (no checksum write, no close) */ SHA1_Final (f->buffer, &f->ctx);if (result)hashcpy (result, f->buffer); -if (update) -sha1flush (f,20 ); +sha1flush (f,20 );if (close (f->fd))die ("%s: sha1 file error on close (%s)" , f->name,strerror (errno));free (f);
Signature · 1 line
1.5.2.rc0.787.g0014