Message ID | 20240704124904.276603-1-alex.bennee@linaro.org |
---|---|
State | New |
Headers | show |
Series | [RFC] hw/core: ensure kernel_end never gets used undefined | expand |
On Thu, Jul 4, 2024 at 2:49 PM Alex Bennée <alex.bennee@linaro.org> wrote: > > Really the problem here is the return values of fit_load_[kernel|fdt]() are a > little all over the place. However we don't want to somehow get > through not having set kernel_end and having it just be random unused > data. > > The compiler complained on an --enable-gcov build: > > In file included from ../../hw/core/loader-fit.c:20: > /home/alex/lsrc/qemu.git/include/qemu/osdep.h: In function ‘load_fit’: > /home/alex/lsrc/qemu.git/include/qemu/osdep.h:486:45: error: ‘kernel_end’ may be used uninitialized [-Werror=maybe-uninitialized] > 486 | #define ROUND_UP(n, d) ROUND_DOWN((n) + (d) - 1, (d)) > | ^ > ../../hw/core/loader-fit.c:270:12: note: ‘kernel_end’ was declared here > 270 | hwaddr kernel_end; > | ^~~~~~~~~~ > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/core/loader-fit.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/core/loader-fit.c b/hw/core/loader-fit.c > index 9f20007dbb..7ccc9d5fbc 100644 > --- a/hw/core/loader-fit.c > +++ b/hw/core/loader-fit.c > @@ -267,7 +267,7 @@ int load_fit(const struct fit_loader *ldr, const char *filename, void *opaque) > const char *def_cfg_name; > char path[FIT_LOADER_MAX_PATH]; > int itb_size, configs, cfg_off, off; > - hwaddr kernel_end; > + hwaddr kernel_end = 0; > int ret; > > itb = load_device_tree(filename, &itb_size); > -- > 2.39.2 > Reviewed-by: Aleksandar Rikalo <arikalo@gmail.com>
diff --git a/hw/core/loader-fit.c b/hw/core/loader-fit.c index 9f20007dbb..7ccc9d5fbc 100644 --- a/hw/core/loader-fit.c +++ b/hw/core/loader-fit.c @@ -267,7 +267,7 @@ int load_fit(const struct fit_loader *ldr, const char *filename, void *opaque) const char *def_cfg_name; char path[FIT_LOADER_MAX_PATH]; int itb_size, configs, cfg_off, off; - hwaddr kernel_end; + hwaddr kernel_end = 0; int ret; itb = load_device_tree(filename, &itb_size);
Really the problem here is the return values of fit_load_[kernel|fdt]() are a little all over the place. However we don't want to somehow get through not having set kernel_end and having it just be random unused data. The compiler complained on an --enable-gcov build: In file included from ../../hw/core/loader-fit.c:20: /home/alex/lsrc/qemu.git/include/qemu/osdep.h: In function ‘load_fit’: /home/alex/lsrc/qemu.git/include/qemu/osdep.h:486:45: error: ‘kernel_end’ may be used uninitialized [-Werror=maybe-uninitialized] 486 | #define ROUND_UP(n, d) ROUND_DOWN((n) + (d) - 1, (d)) | ^ ../../hw/core/loader-fit.c:270:12: note: ‘kernel_end’ was declared here 270 | hwaddr kernel_end; | ^~~~~~~~~~ Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- hw/core/loader-fit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)