* Re: [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
2020-08-31 13:43 ` [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context() Pan Nengyuan
@ 2020-08-31 8:38 ` Gerd Hoffmann
0 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2020-08-31 8:38 UTC (permalink / raw)
To: Pan Nengyuan; +Cc: kuhn.chenqun, euler.robot, qemu-devel, zhang.zhanghailiang
On Mon, Aug 31, 2020 at 09:43:10AM -0400, Pan Nengyuan wrote:
> Receiving error in local variable err, and forgot to free it.
> This patch check the return value of 'gdk_window_create_gl_context'
> and 'gdk_gl_context_realize', then free err to fix it.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> ---
> Cc: Gerd Hoffmann <kraxel@redhat.com>
Added to UI queue.
thanks,
Gerd
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
2020-08-31 13:43 ` [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string Pan Nengyuan
@ 2020-08-31 8:38 ` Gerd Hoffmann
0 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2020-08-31 8:38 UTC (permalink / raw)
To: Pan Nengyuan; +Cc: kuhn.chenqun, euler.robot, qemu-devel, zhang.zhanghailiang
On Mon, Aug 31, 2020 at 09:43:15AM -0400, Pan Nengyuan wrote:
> 'addr' is forgot to free in vnc_socket_ip_addr_string error path. Fix that.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> Reviewed-by: Li Qiang <liq3ea@gmail.com>
> ---
> Cc: Gerd Hoffmann <kraxel@redhat.com>
added to UI queue.
thanks,
Gerd
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 00/10] fix some error memleaks
@ 2020-08-31 13:43 Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 01/10] qga/channel-posix: Plug memory leak in ga_channel_write_all() Pan Nengyuan
` (10 more replies)
0 siblings, 11 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel; +Cc: kuhn.chenqun, Pan Nengyuan, zhang.zhanghailiang, euler.robot
This series fix some Error/GError memleaks.
V2:
1. remove two patches.(One has aleardy applied. The other has fixed.)
2. change patch 5/10 and 7/10.
Pan Nengyuan (10):
qga/channel-posix: Plug memory leak in ga_channel_write_all()
elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init
elf2dmp/pdb: Plug memleak in pdb_init_from_file
target/i386/sev: Plug memleak in sev_read_file_base64
ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
migration/colo: Plug memleaks in colo_process_incoming_thread
blockdev: Fix a memleak in drive_backup_prepare()
block/file-posix: fix a possible undefined behavior
vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
block/file-posix.c | 2 +-
blockdev.c | 1 +
contrib/elf2dmp/pdb.c | 1 +
contrib/elf2dmp/qemu_elf.c | 1 +
migration/colo.c | 5 ++++-
qga/channel-posix.c | 6 +++++-
target/i386/cpu.c | 1 +
target/i386/sev.c | 1 +
ui/gtk-gl-area.c | 11 +++++++++++
ui/vnc-auth-sasl.c | 1 +
10 files changed, 27 insertions(+), 3 deletions(-)
--
2.18.2
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 01/10] qga/channel-posix: Plug memory leak in ga_channel_write_all()
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 02/10] elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init Pan Nengyuan
` (9 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: Michael Roth, kuhn.chenqun, Pan Nengyuan, zhang.zhanghailiang,
euler.robot
Missing g_error_free on error path in ga_channel_write_all(). Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
---
- V2: no changes in v2
---
qga/channel-posix.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/qga/channel-posix.c b/qga/channel-posix.c
index 8fc205ad21..0b151cb87b 100644
--- a/qga/channel-posix.c
+++ b/qga/channel-posix.c
@@ -249,7 +249,7 @@ GIOStatus ga_channel_write_all(GAChannel *c, const gchar *buf, gsize size)
buf += written;
} else if (status != G_IO_STATUS_AGAIN) {
g_warning("error writing to channel: %s", err->message);
- return status;
+ goto out;
}
}
@@ -261,6 +261,10 @@ GIOStatus ga_channel_write_all(GAChannel *c, const gchar *buf, gsize size)
g_warning("error flushing channel: %s", err->message);
}
+out:
+ if (err) {
+ g_error_free(err);
+ }
return status;
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 02/10] elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 01/10] qga/channel-posix: Plug memory leak in ga_channel_write_all() Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 03/10] elf2dmp/pdb: Plug memleak in pdb_init_from_file Pan Nengyuan
` (8 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: kuhn.chenqun, Pan Nengyuan, zhang.zhanghailiang,
Viktor Prutyanov, euler.robot
Missing g_error_free in QEMU_Elf_init() error path. Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
---
- v2: no changes in v2
---
contrib/elf2dmp/qemu_elf.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/contrib/elf2dmp/qemu_elf.c b/contrib/elf2dmp/qemu_elf.c
index 0db7816586..b601b6d7ba 100644
--- a/contrib/elf2dmp/qemu_elf.c
+++ b/contrib/elf2dmp/qemu_elf.c
@@ -126,6 +126,7 @@ int QEMU_Elf_init(QEMU_Elf *qe, const char *filename)
qe->gmf = g_mapped_file_new(filename, TRUE, &gerr);
if (gerr) {
eprintf("Failed to map ELF dump file \'%s\'\n", filename);
+ g_error_free(gerr);
return 1;
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 03/10] elf2dmp/pdb: Plug memleak in pdb_init_from_file
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 01/10] qga/channel-posix: Plug memory leak in ga_channel_write_all() Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 02/10] elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64 Pan Nengyuan
` (7 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: kuhn.chenqun, Pan Nengyuan, zhang.zhanghailiang,
Viktor Prutyanov, euler.robot
Missing g_error_free in pdb_init_from_file() error path. Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
---
- v2: no changes in v2
---
contrib/elf2dmp/pdb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/contrib/elf2dmp/pdb.c b/contrib/elf2dmp/pdb.c
index a5bd40c99d..b3a6547068 100644
--- a/contrib/elf2dmp/pdb.c
+++ b/contrib/elf2dmp/pdb.c
@@ -285,6 +285,7 @@ int pdb_init_from_file(const char *name, struct pdb_reader *reader)
reader->gmf = g_mapped_file_new(name, TRUE, &gerr);
if (gerr) {
eprintf("Failed to map PDB file \'%s\'\n", name);
+ g_error_free(gerr);
return 1;
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (2 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 03/10] elf2dmp/pdb: Plug memleak in pdb_init_from_file Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-09-02 11:30 ` Eduardo Habkost
2020-08-31 13:43 ` [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context() Pan Nengyuan
` (6 subsequent siblings)
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: zhang.zhanghailiang, euler.robot, Pan Nengyuan, Eduardo Habkost,
Paolo Bonzini, kuhn.chenqun, Richard Henderson
Missing g_error_free() in sev_read_file_base64() error path.
Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
---
- v2: no changes in v2
---
target/i386/sev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/target/i386/sev.c b/target/i386/sev.c
index c3ecf86704..de4818da6d 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -500,6 +500,7 @@ sev_read_file_base64(const char *filename, guchar **data, gsize *len)
if (!g_file_get_contents(filename, &base64, &sz, &error)) {
error_report("failed to read '%s' (%s)", filename, error->message);
+ g_error_free(error);
return -1;
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (3 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64 Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 8:38 ` Gerd Hoffmann
2020-08-31 13:43 ` [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features Pan Nengyuan
` (5 subsequent siblings)
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: kuhn.chenqun, Gerd Hoffmann, Pan Nengyuan, zhang.zhanghailiang,
euler.robot
Receiving error in local variable err, and forgot to free it.
This patch check the return value of 'gdk_window_create_gl_context'
and 'gdk_gl_context_realize', then free err to fix it.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
---
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
V2->V1: check the return value of 'gdk_window_create_gl_context'
and 'gdk_gl_context_realize' instead of omitting it(Suggested by Li Qiang)
---
ui/gtk-gl-area.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
index 85f9d14c51..98c22d23f5 100644
--- a/ui/gtk-gl-area.c
+++ b/ui/gtk-gl-area.c
@@ -147,10 +147,21 @@ QEMUGLContext gd_gl_area_create_context(DisplayChangeListener *dcl,
gtk_gl_area_make_current(GTK_GL_AREA(vc->gfx.drawing_area));
window = gtk_widget_get_window(vc->gfx.drawing_area);
ctx = gdk_window_create_gl_context(window, &err);
+ if (err) {
+ g_printerr("Create gdk gl context failed: %s\n", err->message);
+ g_error_free(err);
+ return NULL;
+ }
gdk_gl_context_set_required_version(ctx,
params->major_ver,
params->minor_ver);
gdk_gl_context_realize(ctx, &err);
+ if (err) {
+ g_printerr("Realize gdk gl context failed: %s\n", err->message);
+ g_error_free(err);
+ g_clear_object(&ctx);
+ return NULL;
+ }
return ctx;
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (4 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context() Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-09-01 12:03 ` Markus Armbruster
2020-09-02 11:29 ` Eduardo Habkost
2020-08-31 13:43 ` [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread Pan Nengyuan
` (4 subsequent siblings)
10 siblings, 2 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: zhang.zhanghailiang, euler.robot, Pan Nengyuan, Eduardo Habkost,
Paolo Bonzini, kuhn.chenqun, Richard Henderson
'err' forgot to free in x86_cpu_class_check_missing_features error path.
Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
---
- V2: no changes in v2.
---
target/i386/cpu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 588f32e136..4678aac0b4 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -4872,6 +4872,7 @@ static void x86_cpu_class_check_missing_features(X86CPUClass *xcc,
new->value = g_strdup("type");
*next = new;
next = &new->next;
+ error_free(err);
}
x86_cpu_filter_features(xc, false);
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (5 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-09-01 11:14 ` Li Qiang
2020-08-31 13:43 ` [PATCH v2 08/10] blockdev: Fix a memleak in drive_backup_prepare() Pan Nengyuan
` (3 subsequent siblings)
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: zhang.zhanghailiang, Juan Quintela, Pan Nengyuan,
Dr. David Alan Gilbert, euler.robot, kuhn.chenqun
'local_err' forgot to free in colo_process_incoming_thread error path.
Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
---
Cc: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
Cc: Juan Quintela <quintela@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
---
- V2: Arrange all 'error_report_err' in 'out' label(suggested by Li Qiang).
---
migration/colo.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/migration/colo.c b/migration/colo.c
index ea7d1e9d4e..2288188fe2 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -888,7 +888,6 @@ void *colo_process_incoming_thread(void *opaque)
while (mis->state == MIGRATION_STATUS_COLO) {
colo_wait_handle_message(mis, fb, bioc, &local_err);
if (local_err) {
- error_report_err(local_err);
break;
}
@@ -924,6 +923,10 @@ out:
qemu_fclose(fb);
}
+ if (local_err) {
+ error_report_err(local_err);
+ }
+
/* Hope this not to be too long to loop here */
qemu_sem_wait(&mis->colo_incoming_sem);
qemu_sem_destroy(&mis->colo_incoming_sem);
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 08/10] blockdev: Fix a memleak in drive_backup_prepare()
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (6 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior Pan Nengyuan
` (2 subsequent siblings)
10 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, zhang.zhanghailiang, qemu-block, Pan Nengyuan,
Markus Armbruster, Max Reitz, euler.robot, kuhn.chenqun
'local_err' seems forgot to propagate in error path, it'll cause
a memleak. Fix it.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: qemu-block@nongnu.org
---
- V2: no changes in v2.
---
blockdev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/blockdev.c b/blockdev.c
index 3848a9c8ab..842ac289c1 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1801,6 +1801,7 @@ static void drive_backup_prepare(BlkActionState *common, Error **errp)
if (set_backing_hd) {
bdrv_set_backing_hd(target_bs, source, &local_err);
if (local_err) {
+ error_propagate(errp, local_err);
goto unref;
}
}
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (7 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 08/10] blockdev: Fix a memleak in drive_backup_prepare() Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-09-01 11:15 ` Li Qiang
2020-08-31 13:43 ` [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string Pan Nengyuan
2020-09-17 12:49 ` [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, zhang.zhanghailiang, qemu-block, Pan Nengyuan,
Max Reitz, euler.robot, kuhn.chenqun, Aarushi Mehta
local_err is not initialized to NULL, it will cause a assert error as below:
qemu/util/error.c:59: error_setv: Assertion `*errp == NULL' failed.
Fixes: c6447510690
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
---
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: Aarushi Mehta <mehta.aaru20@gmail.com>
Cc: qemu-block@nongnu.org
---
- V2: no changes in v2.
---
block/file-posix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/file-posix.c b/block/file-posix.c
index 9a00d4190a..697a7d9eea 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -2113,7 +2113,7 @@ static void raw_aio_attach_aio_context(BlockDriverState *bs,
#endif
#ifdef CONFIG_LINUX_IO_URING
if (s->use_linux_io_uring) {
- Error *local_err;
+ Error *local_err = NULL;
if (!aio_setup_linux_io_uring(new_context, &local_err)) {
error_reportf_err(local_err, "Unable to use linux io_uring, "
"falling back to thread pool: ");
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (8 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior Pan Nengyuan
@ 2020-08-31 13:43 ` Pan Nengyuan
2020-08-31 8:38 ` Gerd Hoffmann
2020-09-17 12:49 ` [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-08-31 13:43 UTC (permalink / raw)
To: qemu-devel
Cc: kuhn.chenqun, Gerd Hoffmann, Pan Nengyuan, zhang.zhanghailiang,
euler.robot
'addr' is forgot to free in vnc_socket_ip_addr_string error path. Fix that.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
---
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
- V2: no changes in v2.
---
ui/vnc-auth-sasl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/ui/vnc-auth-sasl.c b/ui/vnc-auth-sasl.c
index 7b2b09f242..0517b2ead9 100644
--- a/ui/vnc-auth-sasl.c
+++ b/ui/vnc-auth-sasl.c
@@ -522,6 +522,7 @@ vnc_socket_ip_addr_string(QIOChannelSocket *ioc,
if (addr->type != SOCKET_ADDRESS_TYPE_INET) {
error_setg(errp, "Not an inet socket type");
+ qapi_free_SocketAddress(addr);
return NULL;
}
ret = g_strdup_printf("%s;%s", addr->u.inet.host, addr->u.inet.port);
--
2.18.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread
2020-08-31 13:43 ` [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread Pan Nengyuan
@ 2020-09-01 11:14 ` Li Qiang
0 siblings, 0 replies; 22+ messages in thread
From: Li Qiang @ 2020-09-01 11:14 UTC (permalink / raw)
To: Pan Nengyuan
Cc: zhanghailiang, Juan Quintela, Qemu Developers,
Dr. David Alan Gilbert, Euler Robot, Chen Qun
Pan Nengyuan <pannengyuan@huawei.com> 于2020年8月31日周一 下午3:17写道:
>
> 'local_err' forgot to free in colo_process_incoming_thread error path.
> Fix that.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
> ---
> Cc: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
> Cc: Juan Quintela <quintela@redhat.com>
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> ---
> - V2: Arrange all 'error_report_err' in 'out' label(suggested by Li Qiang).
> ---
> migration/colo.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/migration/colo.c b/migration/colo.c
> index ea7d1e9d4e..2288188fe2 100644
> --- a/migration/colo.c
> +++ b/migration/colo.c
> @@ -888,7 +888,6 @@ void *colo_process_incoming_thread(void *opaque)
> while (mis->state == MIGRATION_STATUS_COLO) {
> colo_wait_handle_message(mis, fb, bioc, &local_err);
> if (local_err) {
> - error_report_err(local_err);
> break;
> }
>
> @@ -924,6 +923,10 @@ out:
> qemu_fclose(fb);
> }
>
> + if (local_err) {
> + error_report_err(local_err);
> + }
> +
> /* Hope this not to be too long to loop here */
> qemu_sem_wait(&mis->colo_incoming_sem);
> qemu_sem_destroy(&mis->colo_incoming_sem);
> --
> 2.18.2
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior
2020-08-31 13:43 ` [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior Pan Nengyuan
@ 2020-09-01 11:15 ` Li Qiang
0 siblings, 0 replies; 22+ messages in thread
From: Li Qiang @ 2020-09-01 11:15 UTC (permalink / raw)
To: Pan Nengyuan
Cc: Kevin Wolf, zhanghailiang, qemu-block, Qemu Developers,
Max Reitz, Euler Robot, Chen Qun, Aarushi Mehta
Pan Nengyuan <pannengyuan@huawei.com> 于2020年8月31日周一 下午3:21写道:
>
> local_err is not initialized to NULL, it will cause a assert error as below:
> qemu/util/error.c:59: error_setv: Assertion `*errp == NULL' failed.
>
> Fixes: c6447510690
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
> ---
> Cc: Kevin Wolf <kwolf@redhat.com>
> Cc: Max Reitz <mreitz@redhat.com>
> Cc: Aarushi Mehta <mehta.aaru20@gmail.com>
> Cc: qemu-block@nongnu.org
> ---
> - V2: no changes in v2.
> ---
> block/file-posix.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/file-posix.c b/block/file-posix.c
> index 9a00d4190a..697a7d9eea 100644
> --- a/block/file-posix.c
> +++ b/block/file-posix.c
> @@ -2113,7 +2113,7 @@ static void raw_aio_attach_aio_context(BlockDriverState *bs,
> #endif
> #ifdef CONFIG_LINUX_IO_URING
> if (s->use_linux_io_uring) {
> - Error *local_err;
> + Error *local_err = NULL;
> if (!aio_setup_linux_io_uring(new_context, &local_err)) {
> error_reportf_err(local_err, "Unable to use linux io_uring, "
> "falling back to thread pool: ");
> --
> 2.18.2
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
2020-08-31 13:43 ` [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features Pan Nengyuan
@ 2020-09-01 12:03 ` Markus Armbruster
2020-09-02 0:55 ` Pan Nengyuan
2020-09-02 11:29 ` Eduardo Habkost
1 sibling, 1 reply; 22+ messages in thread
From: Markus Armbruster @ 2020-09-01 12:03 UTC (permalink / raw)
To: Pan Nengyuan
Cc: Eduardo Habkost, kuhn.chenqun, qemu-devel, euler.robot,
Paolo Bonzini, Richard Henderson, zhang.zhanghailiang
Pan Nengyuan <pannengyuan@huawei.com> writes:
> 'err' forgot to free in x86_cpu_class_check_missing_features error path.
> Fix that.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> Reviewed-by: Li Qiang <liq3ea@gmail.com>
> ---
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> ---
> - V2: no changes in v2.
> ---
> target/i386/cpu.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 588f32e136..4678aac0b4 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -4872,6 +4872,7 @@ static void x86_cpu_class_check_missing_features(X86CPUClass *xcc,
x86_cpu_expand_features(xc, &err);
if (err) {
/* Errors at x86_cpu_expand_features should never happen,
* but in case it does, just report the model as not
* runnable at all using the "type" property.
*/
strList *new = g_new0(strList, 1);
> new->value = g_strdup("type");
> *next = new;
> next = &new->next;
> + error_free(err);
> }
>
> x86_cpu_filter_features(xc, false);
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Recommended cleanup: change x86_cpu_filter_features() to return true on
success, false on failure, then pass NULL here and check the return
value. Can be done on top.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
2020-09-01 12:03 ` Markus Armbruster
@ 2020-09-02 0:55 ` Pan Nengyuan
0 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-09-02 0:55 UTC (permalink / raw)
To: Markus Armbruster
Cc: Eduardo Habkost, kuhn.chenqun, qemu-devel, euler.robot,
Paolo Bonzini, Richard Henderson, zhang.zhanghailiang
On 2020/9/1 20:03, Markus Armbruster wrote:
> Pan Nengyuan <pannengyuan@huawei.com> writes:
>
>> 'err' forgot to free in x86_cpu_class_check_missing_features error path.
>> Fix that.
>>
>> Reported-by: Euler Robot <euler.robot@huawei.com>
>> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
>> Reviewed-by: Li Qiang <liq3ea@gmail.com>
>> ---
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Richard Henderson <rth@twiddle.net>
>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>> ---
>> - V2: no changes in v2.
>> ---
>> target/i386/cpu.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>> index 588f32e136..4678aac0b4 100644
>> --- a/target/i386/cpu.c
>> +++ b/target/i386/cpu.c
>> @@ -4872,6 +4872,7 @@ static void x86_cpu_class_check_missing_features(X86CPUClass *xcc,
> x86_cpu_expand_features(xc, &err);
> if (err) {
> /* Errors at x86_cpu_expand_features should never happen,
> * but in case it does, just report the model as not
> * runnable at all using the "type" property.
> */
> strList *new = g_new0(strList, 1);
>> new->value = g_strdup("type");
>> *next = new;
>> next = &new->next;
>> + error_free(err);
>> }
>>
>> x86_cpu_filter_features(xc, false);
>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
> Recommended cleanup: change x86_cpu_filter_features() to return true on
> success, false on failure, then pass NULL here and check the return
> value. Can be done on top.
>
Agree with you, 'err' is not used, we can pass NULL here.
BTW, I think the func you mentioned shoule be x86_cpu_expand_features(), not x86_cpu_filter_features()?
Thanks.
> .
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
2020-08-31 13:43 ` [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features Pan Nengyuan
2020-09-01 12:03 ` Markus Armbruster
@ 2020-09-02 11:29 ` Eduardo Habkost
1 sibling, 0 replies; 22+ messages in thread
From: Eduardo Habkost @ 2020-09-02 11:29 UTC (permalink / raw)
To: Pan Nengyuan
Cc: zhang.zhanghailiang, qemu-devel, Paolo Bonzini, euler.robot,
kuhn.chenqun, Richard Henderson
On Mon, Aug 31, 2020 at 09:43:11AM -0400, Pan Nengyuan wrote:
> 'err' forgot to free in x86_cpu_class_check_missing_features error path.
> Fix that.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> Reviewed-by: Li Qiang <liq3ea@gmail.com>
Queued, thanks!
--
Eduardo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64
2020-08-31 13:43 ` [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64 Pan Nengyuan
@ 2020-09-02 11:30 ` Eduardo Habkost
0 siblings, 0 replies; 22+ messages in thread
From: Eduardo Habkost @ 2020-09-02 11:30 UTC (permalink / raw)
To: Pan Nengyuan
Cc: zhang.zhanghailiang, qemu-devel, Paolo Bonzini, euler.robot,
kuhn.chenqun, Richard Henderson
On Mon, Aug 31, 2020 at 09:43:09AM -0400, Pan Nengyuan wrote:
> Missing g_error_free() in sev_read_file_base64() error path.
> Fix that.
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> Reviewed-by: Li Qiang <liq3ea@gmail.com>
Queued, thanks!
--
Eduardo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/10] fix some error memleaks
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
` (9 preceding siblings ...)
2020-08-31 13:43 ` [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string Pan Nengyuan
@ 2020-09-17 12:49 ` Pan Nengyuan
2020-09-21 2:12 ` Pan Nengyuan
10 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-09-17 12:49 UTC (permalink / raw)
To: qemu-devel; +Cc: kuhn.chenqun, zhang.zhanghailiang, euler.robot
ping!
Anyone queued the rest(patch 01/02/03/07/08/09)?
On 2020/8/31 21:43, Pan Nengyuan wrote:
> This series fix some Error/GError memleaks.
>
> V2:
> 1. remove two patches.(One has aleardy applied. The other has fixed.)
> 2. change patch 5/10 and 7/10.
>
> Pan Nengyuan (10):
> qga/channel-posix: Plug memory leak in ga_channel_write_all()
> elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init
> elf2dmp/pdb: Plug memleak in pdb_init_from_file
> target/i386/sev: Plug memleak in sev_read_file_base64
> ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
> target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
> migration/colo: Plug memleaks in colo_process_incoming_thread
> blockdev: Fix a memleak in drive_backup_prepare()
> block/file-posix: fix a possible undefined behavior
> vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
>
> block/file-posix.c | 2 +-
> blockdev.c | 1 +
> contrib/elf2dmp/pdb.c | 1 +
> contrib/elf2dmp/qemu_elf.c | 1 +
> migration/colo.c | 5 ++++-
> qga/channel-posix.c | 6 +++++-
> target/i386/cpu.c | 1 +
> target/i386/sev.c | 1 +
> ui/gtk-gl-area.c | 11 +++++++++++
> ui/vnc-auth-sasl.c | 1 +
> 10 files changed, 27 insertions(+), 3 deletions(-)
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/10] fix some error memleaks
2020-09-17 12:49 ` [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
@ 2020-09-21 2:12 ` Pan Nengyuan
2020-10-10 11:05 ` Pan Nengyuan
0 siblings, 1 reply; 22+ messages in thread
From: Pan Nengyuan @ 2020-09-21 2:12 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, kuhn.chenqun, zhang.zhanghailiang, euler.robot
ping!
and cc: qemu-trivial@nongnu.org
On 2020/9/17 20:49, Pan Nengyuan wrote:
> ping!
>
> Anyone queued the rest(patch 01/02/03/07/08/09)?
>
> On 2020/8/31 21:43, Pan Nengyuan wrote:
>> This series fix some Error/GError memleaks.
>>
>> V2:
>> 1. remove two patches.(One has aleardy applied. The other has fixed.)
>> 2. change patch 5/10 and 7/10.
>>
>> Pan Nengyuan (10):
>> qga/channel-posix: Plug memory leak in ga_channel_write_all()
>> elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init
>> elf2dmp/pdb: Plug memleak in pdb_init_from_file
>> target/i386/sev: Plug memleak in sev_read_file_base64
>> ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
>> target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
>> migration/colo: Plug memleaks in colo_process_incoming_thread
>> blockdev: Fix a memleak in drive_backup_prepare()
>> block/file-posix: fix a possible undefined behavior
>> vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
>>
>> block/file-posix.c | 2 +-
>> blockdev.c | 1 +
>> contrib/elf2dmp/pdb.c | 1 +
>> contrib/elf2dmp/qemu_elf.c | 1 +
>> migration/colo.c | 5 ++++-
>> qga/channel-posix.c | 6 +++++-
>> target/i386/cpu.c | 1 +
>> target/i386/sev.c | 1 +
>> ui/gtk-gl-area.c | 11 +++++++++++
>> ui/vnc-auth-sasl.c | 1 +
>> 10 files changed, 27 insertions(+), 3 deletions(-)
>>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/10] fix some error memleaks
2020-09-21 2:12 ` Pan Nengyuan
@ 2020-10-10 11:05 ` Pan Nengyuan
0 siblings, 0 replies; 22+ messages in thread
From: Pan Nengyuan @ 2020-10-10 11:05 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-trivial, kuhn.chenqun, Laurent Vivier, zhang.zhanghailiang,
euler.robot
ping!
Hello,
Some patches have been reviewed a few weeks ago but missed to queue.
The rest patches are the following:
https://patchwork.kernel.org/patch/11745621/
https://patchwork.kernel.org/patch/11745633/
https://patchwork.kernel.org/patch/11745629/
https://patchwork.kernel.org/patch/11745625/
https://patchwork.kernel.org/patch/11745627/
https://patchwork.kernel.org/patch/11745635/
On 2020/9/21 10:12, Pan Nengyuan wrote:
> ping!
>
> and cc: qemu-trivial@nongnu.org
>
> On 2020/9/17 20:49, Pan Nengyuan wrote:
>> ping!
>>
>> Anyone queued the rest(patch 01/02/03/07/08/09)?
>>
>> On 2020/8/31 21:43, Pan Nengyuan wrote:
>>> This series fix some Error/GError memleaks.
>>>
>>> V2:
>>> 1. remove two patches.(One has aleardy applied. The other has fixed.)
>>> 2. change patch 5/10 and 7/10.
>>>
>>> Pan Nengyuan (10):
>>> qga/channel-posix: Plug memory leak in ga_channel_write_all()
>>> elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init
>>> elf2dmp/pdb: Plug memleak in pdb_init_from_file
>>> target/i386/sev: Plug memleak in sev_read_file_base64
>>> ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context()
>>> target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features
>>> migration/colo: Plug memleaks in colo_process_incoming_thread
>>> blockdev: Fix a memleak in drive_backup_prepare()
>>> block/file-posix: fix a possible undefined behavior
>>> vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string
>>>
>>> block/file-posix.c | 2 +-
>>> blockdev.c | 1 +
>>> contrib/elf2dmp/pdb.c | 1 +
>>> contrib/elf2dmp/qemu_elf.c | 1 +
>>> migration/colo.c | 5 ++++-
>>> qga/channel-posix.c | 6 +++++-
>>> target/i386/cpu.c | 1 +
>>> target/i386/sev.c | 1 +
>>> ui/gtk-gl-area.c | 11 +++++++++++
>>> ui/vnc-auth-sasl.c | 1 +
>>> 10 files changed, 27 insertions(+), 3 deletions(-)
>>>
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2020-10-10 11:06 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-31 13:43 [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 01/10] qga/channel-posix: Plug memory leak in ga_channel_write_all() Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 02/10] elf2dmp/qemu_elf: Plug memleak in QEMU_Elf_init Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 03/10] elf2dmp/pdb: Plug memleak in pdb_init_from_file Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 04/10] target/i386/sev: Plug memleak in sev_read_file_base64 Pan Nengyuan
2020-09-02 11:30 ` Eduardo Habkost
2020-08-31 13:43 ` [PATCH v2 05/10] ui/gtk-gl-area: Plug memleak in gd_gl_area_create_context() Pan Nengyuan
2020-08-31 8:38 ` Gerd Hoffmann
2020-08-31 13:43 ` [PATCH v2 06/10] target/i386/cpu: Fix memleak in x86_cpu_class_check_missing_features Pan Nengyuan
2020-09-01 12:03 ` Markus Armbruster
2020-09-02 0:55 ` Pan Nengyuan
2020-09-02 11:29 ` Eduardo Habkost
2020-08-31 13:43 ` [PATCH v2 07/10] migration/colo: Plug memleaks in colo_process_incoming_thread Pan Nengyuan
2020-09-01 11:14 ` Li Qiang
2020-08-31 13:43 ` [PATCH v2 08/10] blockdev: Fix a memleak in drive_backup_prepare() Pan Nengyuan
2020-08-31 13:43 ` [PATCH v2 09/10] block/file-posix: fix a possible undefined behavior Pan Nengyuan
2020-09-01 11:15 ` Li Qiang
2020-08-31 13:43 ` [PATCH v2 10/10] vnc-auth-sasl: Plug memleak in vnc_socket_ip_addr_string Pan Nengyuan
2020-08-31 8:38 ` Gerd Hoffmann
2020-09-17 12:49 ` [PATCH v2 00/10] fix some error memleaks Pan Nengyuan
2020-09-21 2:12 ` Pan Nengyuan
2020-10-10 11:05 ` Pan Nengyuan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.