# [PATCH] sha1_to_hex: properly terminate the SHA1

2 messages from 2005-12-22 to 2005-12-22. Participants: Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/2908

## Johannes Schindelin, 2005-12-22 17:55

Subject: [PATCH] sha1_to_hex: properly terminate the SHA1
Message-ID: <Pine.LNX.4.63.0512221854550.20025@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0512221854550.20025%40wbgn013.biozentrum.uni-wuerzburg.de

```

sha1_to_hex() returns a pointer to a static buffer. Some of its users
modify that buffer by appending a newline character. Other users rely
on the fact that you can call

	printf("%s", sha1_to_hex(sha1));

Just to be on the safe side, terminate the SHA1 in sha1_to_hex().

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>

---

 sha1_file.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

3a743c154546e4937b4afdc7848d9943ec2f4148
diff --git a/sha1_file.c b/sha1_file.c
index 6011473..d451a94 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -81,6 +81,8 @@ char * sha1_to_hex(const unsigned char *
 		*buf++ = hex[val >> 4];
 		*buf++ = hex[val & 0xf];
 	}
+	*buf = '\0';
+
 	return buffer;
 }
 
-- 
1.0.0

```

## Junio C Hamano, 2005-12-22 20:51

Subject: Re: [PATCH] sha1_to_hex: properly terminate the SHA1
Message-ID: <7voe38j1n4.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7voe38j1n4.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.63.0512221854550.20025@wbgn013.biozentrum.uni-wuerzburg.de>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> sha1_to_hex() returns a pointer to a static buffer. Some of its users
> modify that buffer by appending a newline character. Other users rely
> on the fact that you can call
>
> 	printf("%s", sha1_to_hex(sha1));
>
> Just to be on the safe side, terminate the SHA1 in sha1_to_hex().

Good catch, thanks.  The worst one is:

diff.c:727:		memcpy(one_sha1, sha1_to_hex(one->sha1), 41);

```
