1
1
mirror of http://git.sesse.net/plocate synced 2025-10-06 03:02:39 +02:00

uring: always pair io_uring_get_probe_ring and io_uring_free_probe

As of liburing 2.4-to-be, liburing has ceased using malloc for its
probe allocations: it's concealed behind layers of confusing macros,
but io_uring_get_probe_ring() doesn't actually use libc's malloc
but ratehr its own __uring_alloc/__uring_free functions.  So it no
longer works to free() the return value of io_uring_get_probe_ring():
you have to use io_uring_free_probe() instead.

I am going to report this to liburing upstream as a possible bug,
but it is easy to work around in plocate in any case.
This commit is contained in:
Nick Alcock
2023-03-20 11:48:51 +00:00
committed by Steinar H. Gunderson
parent a81eb2f236
commit 7f39444852

View File

@@ -41,7 +41,7 @@ IOUringEngine::IOUringEngine(size_t slop_bytes)
if (!supports_stat) { if (!supports_stat) {
dprintf("io_uring on this kernel does not support statx(); will do synchronous access checking.\n"); dprintf("io_uring on this kernel does not support statx(); will do synchronous access checking.\n");
} }
free(probe); io_uring_free_probe(probe);
} }
#endif #endif
} }