[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] curses ui: always initialize all curses_line fi
From: |
Samuel Thibault |
Subject: |
Re: [Qemu-devel] [PATCH] curses ui: always initialize all curses_line fields |
Date: |
Fri, 15 Mar 2019 14:09:53 +0100 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
Eric Blake, le ven. 15 mars 2019 08:02:29 -0500, a ecrit:
> On 3/15/19 5:06 AM, Peter Maydell wrote:
> > On Fri, 15 Mar 2019 at 08:37, Samuel Thibault
> > <address@hidden> wrote:
> >>
> >> cchar_t can contain not only attr and chars fields, but also ext_color.
> >> Initialize the whole structure to zero instead of enumerating fields.
> >>
> >> Spotted by Coverity: CID 1399711
> >>
> >> Signed-off-by: Samuel Thibault <address@hidden>
> >> ---
> >> ui/curses.c | 3 +--
> >> 1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/ui/curses.c b/ui/curses.c
> >> index d29098db9f..e99fbe3e24 100644
> >> --- a/ui/curses.c
> >> +++ b/ui/curses.c
> >> @@ -75,9 +75,8 @@ static void curses_update(DisplayChangeListener *dcl,
> >> if (vga_to_curses[ch].chars[0]) {
> >> curses_line[x] = vga_to_curses[ch];
> >> } else {
> >> + curses_line[x] = (cchar_t) {};
> >> curses_line[x].chars[0] = ch;
> >> - curses_line[x].chars[1] = 0;
> >> - curses_line[x].attr = 0;
> >> }
> >> curses_line[x].attr |= at;
> >
> > Does this really need the cast ? {} is supposed to be a
> > universal initializer.
>
> Or is it worth using:
>
> curses_line[x] = (cchar_t) {
> .chars[0] = ch,
> };
>
> so that all other fields not mentioned are zero-initialized, without
> relying on the {} extension?
Right, it's no less readable :) I have sent an updated patch.
Samuel