From 0100a84c89fc22146d8476d1a55bdbb3109a8bd7 Mon Sep 17 00:00:00 2001 From: Nils Faerber Date: Sun, 17 Jun 2012 00:30:46 +0200 Subject: [PATCH] Some minor bug fixes (prevent crashes in dana and upon quit) --- mw_main.c | 10 +++++----- mw_utility.c | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mw_main.c b/mw_main.c index af499c6..3da8541 100644 --- a/mw_main.c +++ b/mw_main.c @@ -563,14 +563,16 @@ static int separate_params(char *params[], char *pbuf) static void params_free(char **params) { int i; + for (i=0; i < PARAMS_MAX; i++) - free(params[i]); + if (params[i] != NULL) + free(params[i]); } void process_cmd(char *cmdline, int clinep, mwdata_t *mwdata) { unsigned char mdata[32]; - unsigned int intopt; + unsigned int intopt=0; char cmd[128], pbuf[128], *params[PARAMS_MAX]; int i, pcnt; char *inbuf = cmdline; @@ -602,11 +604,9 @@ void process_cmd(char *cmdline, int clinep, mwdata_t *mwdata) pcnt = 0; if (strncmp(cmd, "quit", 4) == 0) { - //close(mw_fd); - //exit(0); /* just in case we quit and show another screen */ mw_update_display(&mwdata->mwdevice, MW_SCREEN_MODE_IDLE, 0); - params_free(params); + // params_free(params); g_main_loop_quit (mwdata->mloop); } if (strncmp(cmd, "help", 4) == 0) { diff --git a/mw_utility.c b/mw_utility.c index 6d7ab8a..fa7d342 100644 --- a/mw_utility.c +++ b/mw_utility.c @@ -155,6 +155,9 @@ void mw_buf_draw_pixel(mw_buffer *mwbuf, unsigned int x, unsigned int y, mw_colo if (clr == MW_TRANSPARENT) return; + if (x < 0 || x > 128 || y < 0 || y > 128) + return; + *(unsigned char *)(mwbuf->pbuf+((y*mwbuf->res_x)+x)) = clr; } -- 2.39.2