diff --git a/libwget/queue.c b/libwget/queue.c index 6ee1aeec..540d31d3 100644 --- a/libwget/queue.c +++ b/libwget/queue.c @@ -74,6 +74,10 @@ wget_queue_enqueue(wget_queue *queue, const void *data, size_t size) struct wget_queue_node *node = wget_malloc(sizeof(struct wget_queue_node)); if (!node) return NULL; + if (!data) { + xfree(node); + return NULL; + } node->data = data; node->next = NULL; if (wget_queue_is_empty(queue)) { diff --git a/libwget/quic.c b/libwget/quic.c index 3e21771d..887bbce5 100644 --- a/libwget/quic.c +++ b/libwget/quic.c @@ -837,8 +837,8 @@ quic_stream_mark_acked (wget_quic_stream *stream, size_t offset) stream->ack_offset += wget_byte_get_size (head); - node = wget_queue_dequeue_transmitted_node(stream->buffer); - wget_queue_free_node(node, (void (*)(void *)) wget_byte_free); + wget_queue_free_node(wget_queue_dequeue_transmitted_node(stream->buffer), + (void (*)(void *)) wget_byte_free); } }