On 7/13/21 4:49 PM, Tim Wiederhake wrote: > On libvirtd startup, the list of priority worker threads is uninitialized > (`pool->prioWorkers` is NULL), and then "expanded" to zero (`prioWorkers`) > entries. > > This causes `virThreadPoolExpand` to call `VIR_EXPAND_N` on a null pointer > and an increment of zero. The zero increment triggers `virReallocN` to not > actually allocate any memory and leave the pointer NULL, which, eventually, > causes `memset(NULL, 0, 0)` to be called in `virExpandN`. > > `memset` is declared `__attribute__ ((__nonnull__ 1))`, which triggers the > following warning when libvirt is compiled with address sanitizing enabled: > > $ meson -Dbuildtype=debug -Db_lundef=false -Db_sanitize=address,undefined > build && ninja -C build > $ ./build/run build/src/libvirtd > src/util/viralloc.c:82:5: runtime error: null pointer passed as > argument 1, which is declared to never be null > > Signed-off-by: Tim Wiederhake <twiederh@xxxxxxxxxx> > --- > src/util/virthreadpool.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Michal