Re: [libvirt PATCH v2 1/1] virThreadPoolNewFull: Prevent expanding worker pool by zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux