rem: tmp = wmalloc(strlen(aicon->command)+strlen(aicon->wm_class)+8); sprintf(tmp, "%s (%s)", aicon->wm_class, aicon->command);
add: int len = strlen(aicon->command)+strlen(aicon->wm_class)+8; tmp = wmalloc(len); snprintf(tmp, len, "%s (%s)", aicon->wm_class, aicon->command);
context: appiconBalloon(WObjDescriptor *object){    WAppIcon *aicon = (WAppIcon*)object->parent;    WScreen *scr = aicon->icon->core->screen_ptr;    char *tmp;    if (aicon->command && aicon->wm_class) {	tmp = wmalloc(strlen(aicon->command)+strlen(aicon->wm_class)+8);	sprintf(tmp, "%s (%s)", aicon->wm_class, aicon->command);	scr->balloon->text = tmp;    } else if (aicon->command) {	scr->balloon->text = wstrdup(aicon->command);    } else if (aicon->wm_class) {	scr->balloon->text = wstrdup(aicon->wm_class);    } else {	wBalloonHide(scr);	return;    }    scr->balloon->h = aicon->icon->core->height-2;    scr->balloon->objectWindow = aicon->icon->core->window;    if ((scr->balloon->prevType == object->parent_type    || scr->balloon->prevType == WCLASS_MINIWINDOW)	&& scr->balloon->ignoreTimer) {	XUnmapWindow(dpy, scr->balloon->window);	showBalloon(scr);    } else {	scr->balloon->timer = WMAddTimerHandler(BALLOON_DELAY,						(WMCallback*)showBalloon, scr);    }}