Re: [PATCH] migration/savevm: release gslist after dump_vmstate_json

2020-02-27 Thread Philippe Mathieu-Daudé

Correcting Zhang email.

On 2/19/20 10:47 AM, pannengy...@huawei.com wrote:

From: Pan Nengyuan 

'list' forgot to free at the end of dump_vmstate_json_to_file(), although it's 
called only once, but seems like a clean code.

Fix the leak as follow:
Direct leak of 16 byte(s) in 1 object(s) allocated from:
 #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
 #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
 #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
 #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
 #4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
 #5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
 #6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
 #7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
 #8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
 #9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
 #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
 #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
 #12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Indirect leak of 7472 byte(s) in 467 object(s) allocated from:
 #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
 #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
 #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
 #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
 #4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
 #5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
 #6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
 #7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
 #8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
 #9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
 #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
 #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
 #12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Reported-by: Euler Robot 
Signed-off-by: Pan Nengyuan 
---
  migration/savevm.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/migration/savevm.c b/migration/savevm.c
index f19cb9ec7a..60e6ea8a8d 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -665,6 +665,7 @@ void dump_vmstate_json_to_file(FILE *out_file)
  }
  fprintf(out_file, "\n}\n");
  fclose(out_file);
+g_slist_free(list);
  }
  
  static uint32_t calculate_new_instance_id(const char *idstr)







Re: [PATCH] migration/savevm: release gslist after dump_vmstate_json

2020-02-27 Thread Philippe Mathieu-Daudé

On 2/19/20 10:59 AM, Dr. David Alan Gilbert wrote:

* pannengy...@huawei.com (pannengy...@huawei.com) wrote:

From: Pan Nengyuan 

'list' forgot to free at the end of dump_vmstate_json_to_file(), although it's 
called only once, but seems like a clean code.

Fix the leak as follow:
Direct leak of 16 byte(s) in 1 object(s) allocated from:
 #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
 #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
 #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
 #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
 #4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
 #5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
 #6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
 #7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
 #8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
 #9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
 #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
 #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
 #12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Indirect leak of 7472 byte(s) in 467 object(s) allocated from:
 #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
 #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
 #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
 #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
 #4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
 #5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
 #6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
 #7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
 #8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
 #9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
 #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
 #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
 #12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Reported-by: Euler Robot 


Good robot!


Unfortunately it doesn't generate the documentation along...

Reviewed-by: Philippe Mathieu-Daudé 




Signed-off-by: Pan Nengyuan 
---
  migration/savevm.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/migration/savevm.c b/migration/savevm.c
index f19cb9ec7a..60e6ea8a8d 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -665,6 +665,7 @@ void dump_vmstate_json_to_file(FILE *out_file)
  }
  fprintf(out_file, "\n}\n");
  fclose(out_file);
+g_slist_free(list);


Reviewed-by: Dr. David Alan Gilbert 


  }
  
  static uint32_t calculate_new_instance_id(const char *idstr)

--
2.18.2


--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK







Re: [PATCH] migration/savevm: release gslist after dump_vmstate_json

2020-02-27 Thread Juan Quintela
 wrote:
> From: Pan Nengyuan 
>
> 'list' forgot to free at the end of dump_vmstate_json_to_file(), although 
> it's called only once, but seems like a clean code.
>
> Fix the leak as follow:
> Direct leak of 16 byte(s) in 1 object(s) allocated from:
> #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
> #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
> #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
> #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
> #4 0x5585db591581 in object_class_get_list_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1084
> #5 0x5585db590f66 in object_class_foreach_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1028
> #6 0x7fb945eb35f7 in g_hash_table_foreach 
> (/lib64/libglib-2.0.so.0+0x3b5f7)
> #7 0x5585db59110c in object_class_foreach 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1038
> #8 0x5585db5916b6 in object_class_get_list 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1092
> #9 0x5585db335ca0 in dump_vmstate_json_to_file 
> /mnt/sdb/qemu-new/qemu/migration/savevm.c:638
> #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
> #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
> #12 0x5585da29420d in _start 
> (/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)
>
> Indirect leak of 7472 byte(s) in 467 object(s) allocated from:
> #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
> #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
> #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
> #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
> #4 0x5585db591581 in object_class_get_list_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1084
> #5 0x5585db590f66 in object_class_foreach_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1028
> #6 0x7fb945eb35f7 in g_hash_table_foreach 
> (/lib64/libglib-2.0.so.0+0x3b5f7)
> #7 0x5585db59110c in object_class_foreach 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1038
> #8 0x5585db5916b6 in object_class_get_list 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1092
> #9 0x5585db335ca0 in dump_vmstate_json_to_file 
> /mnt/sdb/qemu-new/qemu/migration/savevm.c:638
> #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
> #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
> #12 0x5585da29420d in _start 
> (/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)
>
> Reported-by: Euler Robot 
> Signed-off-by: Pan Nengyuan 

Reviewed-by: Juan Quintela 




Re: [PATCH] migration/savevm: release gslist after dump_vmstate_json

2020-02-19 Thread Dr. David Alan Gilbert
* pannengy...@huawei.com (pannengy...@huawei.com) wrote:
> From: Pan Nengyuan 
> 
> 'list' forgot to free at the end of dump_vmstate_json_to_file(), although 
> it's called only once, but seems like a clean code.
> 
> Fix the leak as follow:
> Direct leak of 16 byte(s) in 1 object(s) allocated from:
> #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
> #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
> #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
> #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
> #4 0x5585db591581 in object_class_get_list_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1084
> #5 0x5585db590f66 in object_class_foreach_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1028
> #6 0x7fb945eb35f7 in g_hash_table_foreach 
> (/lib64/libglib-2.0.so.0+0x3b5f7)
> #7 0x5585db59110c in object_class_foreach 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1038
> #8 0x5585db5916b6 in object_class_get_list 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1092
> #9 0x5585db335ca0 in dump_vmstate_json_to_file 
> /mnt/sdb/qemu-new/qemu/migration/savevm.c:638
> #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
> #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
> #12 0x5585da29420d in _start 
> (/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)
> 
> Indirect leak of 7472 byte(s) in 467 object(s) allocated from:
> #0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
> #1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
> #2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
> #3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
> #4 0x5585db591581 in object_class_get_list_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1084
> #5 0x5585db590f66 in object_class_foreach_tramp 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1028
> #6 0x7fb945eb35f7 in g_hash_table_foreach 
> (/lib64/libglib-2.0.so.0+0x3b5f7)
> #7 0x5585db59110c in object_class_foreach 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1038
> #8 0x5585db5916b6 in object_class_get_list 
> /mnt/sdb/qemu-new/qemu/qom/object.c:1092
> #9 0x5585db335ca0 in dump_vmstate_json_to_file 
> /mnt/sdb/qemu-new/qemu/migration/savevm.c:638
> #10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
> #11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
> #12 0x5585da29420d in _start 
> (/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)
> 
> Reported-by: Euler Robot 

Good robot!

> Signed-off-by: Pan Nengyuan 
> ---
>  migration/savevm.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/migration/savevm.c b/migration/savevm.c
> index f19cb9ec7a..60e6ea8a8d 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -665,6 +665,7 @@ void dump_vmstate_json_to_file(FILE *out_file)
>  }
>  fprintf(out_file, "\n}\n");
>  fclose(out_file);
> +g_slist_free(list);

Reviewed-by: Dr. David Alan Gilbert 

>  }
>  
>  static uint32_t calculate_new_instance_id(const char *idstr)
> -- 
> 2.18.2
> 
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK




[PATCH] migration/savevm: release gslist after dump_vmstate_json

2020-02-19 Thread pannengyuan
From: Pan Nengyuan 

'list' forgot to free at the end of dump_vmstate_json_to_file(), although it's 
called only once, but seems like a clean code.

Fix the leak as follow:
Direct leak of 16 byte(s) in 1 object(s) allocated from:
#0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
#1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
#2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
#3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
#4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
#5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
#6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
#7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
#8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
#9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
#10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
#11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
#12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Indirect leak of 7472 byte(s) in 467 object(s) allocated from:
#0 0x7fb946abd768 in __interceptor_malloc (/lib64/libasan.so.5+0xef768)
#1 0x7fb945eca445 in g_malloc (/lib64/libglib-2.0.so.0+0x52445)
#2 0x7fb945ee2066 in g_slice_alloc (/lib64/libglib-2.0.so.0+0x6a066)
#3 0x7fb945ee3139 in g_slist_prepend (/lib64/libglib-2.0.so.0+0x6b139)
#4 0x5585db591581 in object_class_get_list_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1084
#5 0x5585db590f66 in object_class_foreach_tramp 
/mnt/sdb/qemu-new/qemu/qom/object.c:1028
#6 0x7fb945eb35f7 in g_hash_table_foreach (/lib64/libglib-2.0.so.0+0x3b5f7)
#7 0x5585db59110c in object_class_foreach 
/mnt/sdb/qemu-new/qemu/qom/object.c:1038
#8 0x5585db5916b6 in object_class_get_list 
/mnt/sdb/qemu-new/qemu/qom/object.c:1092
#9 0x5585db335ca0 in dump_vmstate_json_to_file 
/mnt/sdb/qemu-new/qemu/migration/savevm.c:638
#10 0x5585daa5bcbf in main /mnt/sdb/qemu-new/qemu/vl.c:4420
#11 0x7fb941204812 in __libc_start_main ../csu/libc-start.c:308
#12 0x5585da29420d in _start 
(/mnt/sdb/qemu-new/qemu/build/x86_64-softmmu/qemu-system-x86_64+0x27f020d)

Reported-by: Euler Robot 
Signed-off-by: Pan Nengyuan 
---
 migration/savevm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/migration/savevm.c b/migration/savevm.c
index f19cb9ec7a..60e6ea8a8d 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -665,6 +665,7 @@ void dump_vmstate_json_to_file(FILE *out_file)
 }
 fprintf(out_file, "\n}\n");
 fclose(out_file);
+g_slist_free(list);
 }
 
 static uint32_t calculate_new_instance_id(const char *idstr)
-- 
2.18.2