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)); }
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; }