[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH 5/6] plugins/loader: fix uninitialized variable warning in pl
From: |
Chenqun (kuhn) |
Subject: |
RE: [PATCH 5/6] plugins/loader: fix uninitialized variable warning in plugin_reset_uninstall() |
Date: |
Tue, 3 Nov 2020 02:34:27 +0000 |
> -----Original Message-----
> From: Philippe Mathieu-Daudé [mailto:philmd@redhat.com]
> Sent: Tuesday, November 3, 2020 10:18 AM
> To: Chenqun (kuhn) <kuhn.chenqun@huawei.com>; qemu-devel@nongnu.org;
> qemu-trivial@nongnu.org
> Cc: Alex Bennée <alex.bennee@linaro.org>; Zhanghailiang
> <zhang.zhanghailiang@huawei.com>; ganqixin <ganqixin@huawei.com>; Euler
> Robot <euler.robot@huawei.com>
> Subject: Re: [PATCH 5/6] plugins/loader: fix uninitialized variable warning in
> plugin_reset_uninstall()
>
> On 11/3/20 2:52 AM, Chen Qun wrote:
> > After the WITH_QEMU_LOCK_GUARD macro is added, the compiler cannot
> > identify that the statements in the macro must be executed. As a
> > result, some variables assignment statements in the macro may be
> considered as unexecuted by the compiler.
> >
> > The compiler showed warning:
> > plugins/loader.c: In function ‘plugin_reset_uninstall’:
> > plugins/loader.c:382:15: warning: ‘ctx’ may be used uninitialized in
> > this function [-Wmaybe-uninitialized]
>
> This shouldn't happen as the function returns before (else there is a NULL
> deref).
>
Yes, in fact, it shouldn't have happened when the program was running.
But after added 'WITH_QEMU_LOCK_GUARD', let the compiler think it might happen.
So, we add a default value, make the compiler happy.
Thanks,
Chen Qun
> > 382 | data->ctx = ctx;
> > | ~~~~~~~~~~^~~~~
> >
> > Add a default value for 'expire_time' to prevented the warning.
> >
> > Reported-by: Euler Robot <euler.robot@huawei.com>
> > Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
> > ---
> > Cc: "Alex Bennée" <alex.bennee@linaro.org>
> > ---
> > plugins/loader.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/plugins/loader.c b/plugins/loader.c index
> > 8ac5dbc20f..88593fe138 100644
> > --- a/plugins/loader.c
> > +++ b/plugins/loader.c
> > @@ -367,7 +367,7 @@ void plugin_reset_uninstall(qemu_plugin_id_t id,
> > bool reset) {
> > struct qemu_plugin_reset_data *data;
> > - struct qemu_plugin_ctx *ctx;
> > + struct qemu_plugin_ctx *ctx = NULL;
> >
> > WITH_QEMU_LOCK_GUARD(&plugin.lock) {
> > ctx = plugin_id_to_ctx_locked(id);
> >
- [PATCH 0/6] fix uninitialized variable warning, Chen Qun, 2020/11/02
- [PATCH 2/6] hw/rdma/rdma_backend: fix uninitialized variable warning in rdma_poll_cq(), Chen Qun, 2020/11/02
- [PATCH 5/6] plugins/loader: fix uninitialized variable warning in plugin_reset_uninstall(), Chen Qun, 2020/11/02
- [PATCH 4/6] util/qemu-timer: fix uninitialized variable warning for expire_time, Chen Qun, 2020/11/02
- [PATCH 3/6] util/qemu-timer: fix uninitialized variable warning in timer_mod_anticipate_ns(), Chen Qun, 2020/11/02
- [PATCH 1/6] target/xtensa: fix uninitialized variable warning, Chen Qun, 2020/11/02
- [PATCH 6/6] migration: fix uninitialized variable warning in migrate_send_rp_req_pages(), Chen Qun, 2020/11/02
- Re: [PATCH 0/6] fix uninitialized variable warning, Peter Maydell, 2020/11/03