1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-27 13:21:11 +03:00

src: Use explicit_bzero() if available on the platform

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Andreas Schneider
2018-02-12 14:35:55 +01:00
parent 25ff1214a4
commit ebcff9fd63
17 changed files with 48 additions and 52 deletions

View File

@@ -107,10 +107,10 @@ void ssh_buffer_free(struct ssh_buffer_struct *buffer) {
if (buffer->data) {
/* burn the data */
BURN_BUFFER(buffer->data, buffer->allocated);
explicit_bzero(buffer->data, buffer->allocated);
SAFE_FREE(buffer->data);
}
BURN_BUFFER(buffer, sizeof(struct ssh_buffer_struct));
explicit_bzero(buffer, sizeof(struct ssh_buffer_struct));
SAFE_FREE(buffer);
}
@@ -146,7 +146,7 @@ static int realloc_buffer(struct ssh_buffer_struct *buffer, size_t needed) {
return -1;
}
memcpy(new, buffer->data,buffer->used);
BURN_BUFFER(buffer->data, buffer->used);
explicit_bzero(buffer->data, buffer->used);
SAFE_FREE(buffer->data);
} else {
new = realloc(buffer->data, needed);
@@ -177,7 +177,7 @@ static void buffer_shift(ssh_buffer buffer){
if (buffer->secure){
void *ptr = buffer->data + buffer->used;
BURN_BUFFER(ptr, burn_pos);
explicit_bzero(ptr, burn_pos);
}
buffer_verify(buffer);
@@ -193,7 +193,7 @@ static void buffer_shift(ssh_buffer buffer){
int ssh_buffer_reinit(struct ssh_buffer_struct *buffer)
{
buffer_verify(buffer);
BURN_BUFFER(buffer->data, buffer->used);
explicit_bzero(buffer->data, buffer->used);
buffer->used = 0;
buffer->pos = 0;
if(buffer->allocated > 127) {