diff --git a/src/errors.c b/src/errors.c index 7a874baf7..62a5ebd3b 100644 --- a/src/errors.c +++ b/src/errors.c @@ -190,10 +190,9 @@ void startup_logs_free(struct ring *r) { #ifdef USE_SHM_OPEN if (r == shm_startup_logs) - munmap(r, STARTUP_LOG_SIZE); - else + munmap(ring_area(r), STARTUP_LOG_SIZE); #endif /* ! USE_SHM_OPEN */ - ring_free(r); + ring_free(r); } /* duplicate a startup logs which was previously allocated in a shm */ diff --git a/src/sink.c b/src/sink.c index 1195c359c..76f3ffb14 100644 --- a/src/sink.c +++ b/src/sink.c @@ -696,14 +696,13 @@ static void sink_free(struct sink *sink) if (sink->type == SINK_TYPE_BUFFER) { if (sink->store) { size_t size = (ring_size(sink->ctx.ring) + 4095UL) & -4096UL; - void *area = (ring_area(sink->ctx.ring) - sizeof(*sink->ctx.ring)); + void *area = ring_area(sink->ctx.ring); msync(area, size, MS_SYNC); munmap(area, size); ha_free(&sink->store); } - else - ring_free(sink->ctx.ring); + ring_free(sink->ctx.ring); } LIST_DEL_INIT(&sink->sink_list); // remove from parent list task_destroy(sink->forward_task);