buffer: Reformat buffer_shift()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
29f36791c9
Коммит
be703974e9
31
src/buffer.c
31
src/buffer.c
@ -182,22 +182,27 @@ static int realloc_buffer(struct ssh_buffer_struct *buffer, size_t needed) {
|
|||||||
* @brief shifts a buffer to remove unused data in the beginning
|
* @brief shifts a buffer to remove unused data in the beginning
|
||||||
* @param buffer SSH buffer
|
* @param buffer SSH buffer
|
||||||
*/
|
*/
|
||||||
static void buffer_shift(ssh_buffer buffer){
|
static void buffer_shift(ssh_buffer buffer)
|
||||||
uint32_t burn_pos = buffer->pos;
|
{
|
||||||
|
uint32_t burn_pos = buffer->pos;
|
||||||
|
|
||||||
buffer_verify(buffer);
|
buffer_verify(buffer);
|
||||||
if(buffer->pos==0)
|
|
||||||
return;
|
|
||||||
memmove(buffer->data, buffer->data + buffer->pos, buffer->used - buffer->pos);
|
|
||||||
buffer->used -= buffer->pos;
|
|
||||||
buffer->pos=0;
|
|
||||||
|
|
||||||
if (buffer->secure){
|
if (buffer->pos == 0) {
|
||||||
void *ptr = buffer->data + buffer->used;
|
return;
|
||||||
explicit_bzero(ptr, burn_pos);
|
}
|
||||||
}
|
memmove(buffer->data,
|
||||||
|
buffer->data + buffer->pos,
|
||||||
|
buffer->used - buffer->pos);
|
||||||
|
buffer->used -= buffer->pos;
|
||||||
|
buffer->pos = 0;
|
||||||
|
|
||||||
buffer_verify(buffer);
|
if (buffer->secure) {
|
||||||
|
void *ptr = buffer->data + buffer->used;
|
||||||
|
explicit_bzero(ptr, burn_pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer_verify(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user