diff mbox series

[v7,2/4] migration/multifd: Fix p->iov leak in multifd-uadk.c

Message ID 20240828145650.15879-3-farosas@suse.de
State New
Headers show
Series migration/multifd: Remove multifd_send_state->pages (leftovers) | expand

Commit Message

Fabiano Rosas Aug. 28, 2024, 2:56 p.m. UTC
The send_cleanup() hook should free the p->iov that was allocated at
send_setup(). This was missed because the UADK code is conditional on
the presence of the accelerator, so it's not tested by default.

Fixes: 819dd20636 ("migration/multifd: Add UADK initialization")
Reported-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
 migration/multifd-uadk.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Peter Xu Aug. 28, 2024, 3:59 p.m. UTC | #1
On Wed, Aug 28, 2024 at 11:56:48AM -0300, Fabiano Rosas wrote:
> The send_cleanup() hook should free the p->iov that was allocated at
> send_setup(). This was missed because the UADK code is conditional on
> the presence of the accelerator, so it's not tested by default.
> 
> Fixes: 819dd20636 ("migration/multifd: Add UADK initialization")
> Reported-by: Peter Xu <peterx@redhat.com>
> Signed-off-by: Fabiano Rosas <farosas@suse.de>

Thanks.

Reviewed-by: Peter Xu <peterx@redhat.com>
Michael Tokarev Sept. 6, 2024, 3:06 p.m. UTC | #2
28.08.2024 17:56, Fabiano Rosas wrote:
> The send_cleanup() hook should free the p->iov that was allocated at
> send_setup(). This was missed because the UADK code is conditional on
> the presence of the accelerator, so it's not tested by default.
> 
> Fixes: 819dd20636 ("migration/multifd: Add UADK initialization")
> Reported-by: Peter Xu <peterx@redhat.com>
> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> ---
>   migration/multifd-uadk.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/migration/multifd-uadk.c b/migration/multifd-uadk.c
> index 89f6a72f0e..6e6a290ae9 100644
> --- a/migration/multifd-uadk.c
> +++ b/migration/multifd-uadk.c
> @@ -132,6 +132,8 @@ static void multifd_uadk_send_cleanup(MultiFDSendParams *p, Error **errp)
>   
>       multifd_uadk_uninit_sess(wd);
>       p->compress_data = NULL;
> +    g_free(p->iov);
> +    p->iov = NULL;
>   }

This sounds like something for stable-9.1.x, is it not?

Thanks,

/mjt
Fabiano Rosas Sept. 6, 2024, 4:51 p.m. UTC | #3
Michael Tokarev <mjt@tls.msk.ru> writes:

> 28.08.2024 17:56, Fabiano Rosas wrote:
>> The send_cleanup() hook should free the p->iov that was allocated at
>> send_setup(). This was missed because the UADK code is conditional on
>> the presence of the accelerator, so it's not tested by default.
>> 
>> Fixes: 819dd20636 ("migration/multifd: Add UADK initialization")
>> Reported-by: Peter Xu <peterx@redhat.com>
>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>> ---
>>   migration/multifd-uadk.c | 2 ++
>>   1 file changed, 2 insertions(+)
>> 
>> diff --git a/migration/multifd-uadk.c b/migration/multifd-uadk.c
>> index 89f6a72f0e..6e6a290ae9 100644
>> --- a/migration/multifd-uadk.c
>> +++ b/migration/multifd-uadk.c
>> @@ -132,6 +132,8 @@ static void multifd_uadk_send_cleanup(MultiFDSendParams *p, Error **errp)
>>   
>>       multifd_uadk_uninit_sess(wd);
>>       p->compress_data = NULL;
>> +    g_free(p->iov);
>> +    p->iov = NULL;
>>   }
>
> This sounds like something for stable-9.1.x, is it not?

Right, it is.

>
> Thanks,
>
> /mjt
diff mbox series

Patch

diff --git a/migration/multifd-uadk.c b/migration/multifd-uadk.c
index 89f6a72f0e..6e6a290ae9 100644
--- a/migration/multifd-uadk.c
+++ b/migration/multifd-uadk.c
@@ -132,6 +132,8 @@  static void multifd_uadk_send_cleanup(MultiFDSendParams *p, Error **errp)
 
     multifd_uadk_uninit_sess(wd);
     p->compress_data = NULL;
+    g_free(p->iov);
+    p->iov = NULL;
 }
 
 static inline void prepare_next_iov(MultiFDSendParams *p, void *base,