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 <danahow@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
93d496a560
commit
f02153696f
@ -29,17 +29,19 @@ 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);
|
||||
if (close(f->fd))
|
||||
die("%s: sha1 file error on close (%s)", f->name, strerror(errno));
|
||||
|
Loading…
Reference in New Issue
Block a user