1
1

buffer: Rewrite ssh_buffer_free()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Andreas Schneider 2018-08-31 16:52:33 +02:00
родитель a1b57d3b94
Коммит c1c32bda14

Просмотреть файл

@ -129,19 +129,23 @@ struct ssh_buffer_struct *ssh_buffer_new(void) {
* *
* \param[in] buffer The buffer to free. * \param[in] buffer The buffer to free.
*/ */
void ssh_buffer_free(struct ssh_buffer_struct *buffer) { void ssh_buffer_free(struct ssh_buffer_struct *buffer)
if (buffer == NULL) { {
return; if (buffer == NULL) {
} return;
buffer_verify(buffer); }
buffer_verify(buffer);
if (buffer->data) { if (buffer->secure && buffer->allocated > 0) {
/* burn the data */ /* burn the data */
explicit_bzero(buffer->data, buffer->allocated); explicit_bzero(buffer->data, buffer->allocated);
SAFE_FREE(buffer->data); SAFE_FREE(buffer->data);
}
explicit_bzero(buffer, sizeof(struct ssh_buffer_struct)); explicit_bzero(buffer, sizeof(struct ssh_buffer_struct));
SAFE_FREE(buffer); } else {
SAFE_FREE(buffer->data);
}
SAFE_FREE(buffer);
} }
/** /**