upstream commit
use explicit_bzero() more liberally in the buffer code; ok
deraadt
Upstream-ID: 0ece37069fd66bc6e4f55eb1321f93df372b65bf
diff --git a/sshbuf.c b/sshbuf.c
index f52b567..4d6e0ea 100644
--- a/sshbuf.c
+++ b/sshbuf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshbuf.c,v 1.5 2015/12/11 04:21:12 mmcc Exp $ */
+/* $OpenBSD: sshbuf.c,v 1.6 2016/01/12 23:42:54 djm Exp $ */
/*
* Copyright (c) 2011 Damien Miller
*
@@ -134,7 +134,7 @@
void
sshbuf_init(struct sshbuf *ret)
{
- bzero(ret, sizeof(*ret));
+ explicit_bzero(ret, sizeof(*ret));
ret->alloc = SSHBUF_SIZE_INIT;
ret->max_size = SSHBUF_SIZE_MAX;
ret->readonly = 0;
@@ -178,7 +178,7 @@
explicit_bzero(buf->d, buf->alloc);
free(buf->d);
}
- bzero(buf, sizeof(*buf));
+ explicit_bzero(buf, sizeof(*buf));
if (!dont_free)
free(buf);
}
@@ -194,7 +194,7 @@
return;
}
if (sshbuf_check_sanity(buf) == 0)
- bzero(buf->d, buf->alloc);
+ explicit_bzero(buf->d, buf->alloc);
buf->off = buf->size = 0;
if (buf->alloc != SSHBUF_SIZE_INIT) {
if ((d = realloc(buf->d, SSHBUF_SIZE_INIT)) != NULL) {
@@ -253,7 +253,7 @@
rlen = roundup(buf->size, SSHBUF_SIZE_INC);
if (rlen > max_size)
rlen = max_size;
- bzero(buf->d + buf->size, buf->alloc - buf->size);
+ explicit_bzero(buf->d + buf->size, buf->alloc - buf->size);
SSHBUF_DBG(("new alloc = %zu", rlen));
if ((dp = realloc(buf->d, rlen)) == NULL)
return SSH_ERR_ALLOC_FAIL;