From 504a7161d0c5b7d96993125badb80bdfe4669057 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Sun, 9 May 2021 16:03:18 -0400 Subject: [PATCH] Patch leaks --- mmenu.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mmenu.c b/mmenu.c index 08f3d06..4e4283c 100644 --- a/mmenu.c +++ b/mmenu.c @@ -101,6 +101,8 @@ getmenu(char *date) if (c == '>') intag = false; } + free(chunk.memory); + // Strip empty newlines char *nl = (char *) calloc(1, sizeof(char)); if (!nl) memfail(); @@ -116,8 +118,8 @@ getmenu(char *date) strncat(nl, next, 2); } } - free(outp); + free(outp); return nl; } @@ -128,7 +130,10 @@ dayback(Widget unused, XtPointer client_data, XtPointer call_data) Widget disp = (Widget) client_data; XmListCallbackStruct *list_cbs = (XmListCallbackStruct *) call_data; char *nl = getmenu(days[list_cbs->item_position - 1]); - XmTextReplace((Widget) disp, 0, strlen(XmTextGetString(disp)), nl); + char *oldtext = XmTextGetString(disp) ; + XmTextReplace((Widget) disp, 0, strlen(oldtext), nl); + free(nl); + free(oldtext); } // Convert an array of string to an array of compound strings @@ -165,7 +170,8 @@ main(int argc, char *argv[]) // Create text widget to display menu n = 0; - XtSetArg(args[n], XmNvalue, getmenu("")); n++; + char *nl = getmenu(""); + XtSetArg(args[n], XmNvalue, nl); n++; XtSetArg(args[n], XmNeditable, False); n++; XtSetArg(args[n], XmNcolumns, 80); n++; XtSetArg(args[n], XmNrows, 20); n++; @@ -173,6 +179,7 @@ main(int argc, char *argv[]) XtSetArg(args[n], XmNcursorPositionVisible, False); n++; disp = XmCreateScrolledText(rowcol, "text", args, n); XtManageChild(disp); + free(nl); // Create day selector strs = ArgvToXmStringTable (XtNumber(days), days); -- 2.39.2