rem: free(path);
add: wfree(path);
context: wAppIconCreateForDock(WScreen *scr, char *command, char *wm_instance,		      char *wm_class, int tile){    WAppIcon *dicon;    char *path;    dicon = wmalloc(sizeof(WAppIcon));    wretain(dicon);    memset(dicon, 0, sizeof(WAppIcon));    dicon->yindex = -1;    dicon->xindex = -1;    dicon->prev = NULL;    dicon->next = scr->app_icon_list;    if (scr->app_icon_list) {        scr->app_icon_list->prev = dicon;    }    scr->app_icon_list = dicon;    if (command) {	dicon->command = wstrdup(command);    }    if (wm_class)      dicon->wm_class = wstrdup(wm_class);    if (wm_instance)      dicon->wm_instance = wstrdup(wm_instance);    path = wDefaultGetIconFile(scr, wm_instance, wm_class, True);    if (!path && command) {	wApplicationExtractDirPackIcon(scr, command, wm_instance, wm_class);	path = wDefaultGetIconFile(scr, wm_instance, wm_class, False);    }    if (path)	path = FindImage(wPreferences.icon_path, path);    dicon->icon = wIconCreateWithIconFile(scr, path, tile);    if (path)	free(path);#ifdef XDND    wXDNDMakeAwareness(dicon->icon->core->window);#endif#ifdef REDUCE_APPICONS    dicon->num_apps = 0;#endif#ifdef DEMATERIALIZE_ICON    {        XSetWindowAttributes attribs;        attribs.save_under = True;        XChangeWindowAttributes(dpy, dicon->icon->core->window,                CWSaveUnder, &attribs);    }#endif    /* will be overriden by dock */    dicon->icon->core->descriptor.handle_mousedown = appIconMouseDown;    dicon->icon->core->descriptor.handle_expose = iconExpose;    dicon->icon->core->descriptor.parent_type = WCLASS_APPICON;    dicon->icon->core->descriptor.parent = dicon;    AddToStackList(dicon->icon->core);    return dicon;}