plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit ffbdd1aa20c8a20a8e9dcd3cec644b6dfa3c6acb
parent 846f724983f098541df0d6f44b1a617b60602aa2
Author: Tom Schwindl <schwindl@posteo.de>
Date:   Sat, 10 Sep 2022 15:18:31 +0200

rio: check the return value of malloc(3)

Diffstat:
Msrc/cmd/rio/client.c | 5+++++
Msrc/cmd/rio/main.c | 4++++
Msrc/cmd/rio/manage.c | 5+++++
3 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/cmd/rio/client.c b/src/cmd/rio/client.c @@ -151,6 +151,11 @@ getclient(Window w, int create) return 0; c = (Client *)malloc(sizeof(Client)); + if (!c){ + fprintf(stderr, "rio: Failed to allocate memory\n"); + exit(1); + } + memset(c, 0, sizeof(Client)); c->window = w; /* c->parent will be set by the caller */ diff --git a/src/cmd/rio/main.c b/src/cmd/rio/main.c @@ -213,6 +213,10 @@ main(int argc, char *argv[]) num_screens = ScreenCount(dpy); screens = (ScreenInfo *)malloc(sizeof(ScreenInfo) * num_screens); + if (!screens){ + fprintf(stderr, "rio: Failed to allocate memory\n"); + return 1; + } for(i = 0; i < num_screens; i++) initscreen(&screens[i], i, background); diff --git a/src/cmd/rio/manage.c b/src/cmd/rio/manage.c @@ -320,6 +320,11 @@ getcmaps(Client *c) c->cmapwins = cw; c->wmcmaps = (Colormap*)malloc(n*sizeof(Colormap)); + if (!c->wmcmaps){ + fprintf(stderr, "rio: Failed to allocate memory\n"); + exit(1); + } + for(i = 0; i < n; i++){ if(cw[i] == c->window) c->wmcmaps[i] = c->cmap;