From 13f60efbd7d8572e2850dae9c0adbcc137be3e92 Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Fri, 5 Sep 2008 00:24:27 +0000 Subject: 25611, 25613: protect against two possible NULL dereferences. --- ChangeLog | 3 +++ Src/Modules/curses.c | 40 ++++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7e77e3231..20c7714d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-09-04 Clint Adams + * 25611, 25613: Src/Modules/curses.c: protect against two possible + NULL dereferences. + * 25612: Src/Zle/compmatch.c: remove dead code. * 25610: Src/hist.c: remove dead code. diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c index df8a9cdc6..fe03cd268 100644 --- a/Src/Modules/curses.c +++ b/Src/Modules/curses.c @@ -874,16 +874,17 @@ zccmd_attr(const char *nam, char **args) if ((zca = zcurses_attrget(w->win, ptr)) == NULL) { zwarnnam(nam, "attribute `%s' not known", ptr); ret = 1; - } - switch(onoff) { - case ZCURSES_ATTRON: - if (wattron(w->win, zca->number) == ERR) - ret = 1; - break; - case ZCURSES_ATTROFF: - if (wattroff(w->win, zca->number) == ERR) - ret = 1; - break; + } else { + switch(onoff) { + case ZCURSES_ATTRON: + if (wattron(w->win, zca->number) == ERR) + ret = 1; + break; + case ZCURSES_ATTROFF: + if (wattroff(w->win, zca->number) == ERR) + ret = 1; + break; + } } } } @@ -948,14 +949,17 @@ zccmd_bg(const char *nam, char **args) if ((zca = zcurses_attrget(w->win, ptr)) == NULL) { zwarnnam(nam, "attribute `%s' not known", ptr); ret = 1; - } - switch(onoff) { - case ZCURSES_ATTRON: - ch |= zca->number; - break; - case ZCURSES_ATTROFF: - ch &= ~zca->number; - break; + } else { + switch(onoff) { + case ZCURSES_ATTRON: + if (wattron(w->win, zca->number) == ERR) + ret = 1; + break; + case ZCURSES_ATTROFF: + if (wattroff(w->win, zca->number) == ERR) + ret = 1; + break; + } } } } -- cgit v1.2.3