diff --git a/src/main.c b/src/main.c index 8b408bac..1eb46b50 100644 --- a/src/main.c +++ b/src/main.c @@ -245,12 +245,14 @@ SetupEnvironment(WScreen *scr) *ptr = 0; snprintf(buf, sizeof(buf), ".%i", scr->screen); strcat(tmp, buf); - putenv(tmp); + putenv(tmp); + wfree(tmp); } tmp = wmalloc(60); snprintf(tmp, 60, "WRASTER_COLOR_RESOLUTION%i=%i", scr->screen, scr->rcontext->attribs->colors_per_channel); putenv(tmp); + wfree(tmp); } @@ -595,6 +597,7 @@ main(int argc, char **argv) str = wstrconcat("WMAKER_BIN_NAME=", argv[0]); putenv(str); + wfree(str); ArgCount = argc; Arguments = argv; @@ -782,6 +785,7 @@ main(int argc, char **argv) snprintf(str, len, "DISPLAY=%s", DisplayName); } putenv(str); + wfree(str); #ifdef DEBUG if (doSync) diff --git a/src/misc.c b/src/misc.c index 365b721b..e9e845c9 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1243,7 +1243,7 @@ UpdateDomainFile(WDDomain *domain) { struct stat stbuf; char path[PATH_MAX]; - WMPropList *shared_dict=NULL, *dict; + WMPropList *shared_dict, *dict; Bool result, freeDict = False; dict = domain->dictionary; @@ -1253,10 +1253,13 @@ UpdateDomainFile(WDDomain *domain) SYSCONFDIR, domain->domain_name); if (stat(path, &stbuf) >= 0) { shared_dict = WMReadPropListFromFile(path); - if (shared_dict && WMIsPLDictionary(shared_dict)) { - freeDict = True; - dict = WMDeepCopyPropList(domain->dictionary); - WMSubtractPLDictionaries(dict, shared_dict, True); + if (shared_dict) { + if (WMIsPLDictionary(shared_dict)) { + freeDict = True; + dict = WMDeepCopyPropList(domain->dictionary); + WMSubtractPLDictionaries(dict, shared_dict, True); + } + WMReleasePropList(shared_dict); } } } diff --git a/wrlib/convert.c b/wrlib/convert.c index ebbf4947..c53a252e 100644 --- a/wrlib/convert.c +++ b/wrlib/convert.c @@ -1041,6 +1041,7 @@ RConvertImageMask(RContext *context, RImage *image, Pixmap *pixmap, RPutXImage(context, *mask, gc, ximg, 0, 0, 0, 0, image->width, image->height); RDestroyXImage(context, ximg); + XFreeGC(context->dpy, gc); return True; }