Keqian Zhu <[email protected]> 于2020年7月27日周一 下午9:03写道: > > Avoid covering object refcount of qemu_irq, otherwise it may causes > memory leak.
Any reproducer? Thanks, Li Qiang > > Signed-off-by: Keqian Zhu <[email protected]> > --- > hw/core/irq.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/core/irq.c b/hw/core/irq.c > index fb3045b912..59af4dfc74 100644 > --- a/hw/core/irq.c > +++ b/hw/core/irq.c > @@ -125,7 +125,9 @@ void qemu_irq_intercept_in(qemu_irq *gpio_in, > qemu_irq_handler handler, int n) > int i; > qemu_irq *old_irqs = qemu_allocate_irqs(NULL, NULL, n); > for (i = 0; i < n; i++) { > - *old_irqs[i] = *gpio_in[i]; > + old_irqs[i]->handler = gpio_in[i]->handler; > + old_irqs[i]->opaque = gpio_in[i]->opaque; > + > gpio_in[i]->handler = handler; > gpio_in[i]->opaque = &old_irqs[i]; > } > -- > 2.19.1 >
