static void
clear_queue(struct sol_vector *vec)
{
    struct queue_item *item;
    uint16_t idx;

    SOL_VECTOR_FOREACH_IDX (vec, item, idx) {
        sol_util_secure_clear_memory(item->buffer.data, item->buffer.capacity);
        sol_buffer_fini(&item->buffer);
        sol_util_secure_clear_memory(item, sizeof(*item));
    }
Пример #2
0
SOL_API void
sol_buffer_fini(struct sol_buffer *buf)
{
    if (!buf)
        return;
    if ((buf->flags & SOL_BUFFER_FLAGS_CLEAR_MEMORY) == SOL_BUFFER_FLAGS_CLEAR_MEMORY)
        sol_util_secure_clear_memory(buf->data, buf->capacity);
    if (!(buf->flags & SOL_BUFFER_FLAGS_NO_FREE))
        free(buf->data);
    buf->data = NULL;
    buf->used = 0;
    buf->capacity = 0;
}