[libvirt] [PATCH v2 0/2] ESX: Fixing SetAutoStart

Matthias Bolte matthias.bolte at googlemail.com
Thu Aug 2 09:04:42 UTC 2018


2018-08-01 18:09 GMT+02:00 Marcos Paulo de Souza <marcos.souza.org at gmail.com>:
> This is a new version from the last patchset sent yesterday, but now using
> VIR_STRNDUP, instead of allocating memory manually.
>
> First version: https://www.redhat.com/archives/libvir-list/2018-August/msg00000.html
>
> Marcos Paulo de Souza (2):
>   esx: Do not crash SetAutoStart by double free
>   esx: Fix SetAutoStart invalid pointer free
>
>  src/esx/esx_driver.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)

I see the problem, but your approach is too complicated.

There is already code in place to handle those situations:

3417  cleanup:
3418     if (newPowerInfo) {
3419         newPowerInfo->key = NULL;
3420         newPowerInfo->startAction = NULL;
3421         newPowerInfo->stopAction = NULL;
3422     }

That resets those fields to NULL to avoid double freeing and freeing
static strings.

The problem is that commit ae83e02f3dd7fe99fed5d8159a35b666fafeafd5 by
John Frelan broke this logic, by setting newPowerInfo to NULL in the
success path, to silence Coverity.

-- 
Matthias Bolte
http://photron.blogspot.com




More information about the libvir-list mailing list