rem: free(tmp);
add: wfree(tmp);
context: speedChange(WMWidget *w, void *data){    _Panel *panel = (_Panel*)data;    int i;    char buffer[64];    int threshold;    char *tmp;    if (w == NULL) {	float accel;	tmp = WMGetTextFieldText(panel->acceT);	if (sscanf(tmp, "%f", &accel)!=1 || accel < 0) {	    WMRunAlertPanel(WMWidgetScreen(panel->acceT), GetWindow(panel),			    _("Error"),			    _("Invalid mouse acceleration value. Must be a positive real value."),			    _("OK"), NULL, NULL);	    free(tmp);	    return;	}	panel->acceleration = accel;	free(tmp);    } else {	i = (int)WMGetSliderValue(panel->speedS);    	panel->acceleration = 0.25+(i*0.25);	sprintf(buffer, "%.2f", 0.25+(i*0.25));	WMSetTextFieldText(panel->acceT, buffer);    }    tmp = WMGetTextFieldText(panel->threT);    if (sscanf(tmp, "%i", &threshold)!=1 || threshold < 0 	|| threshold > panel->maxThreshold) {	WMRunAlertPanel(WMWidgetScreen(panel->win), GetWindow(panel), _("Error"),			_("Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating."),			_("OK"), NULL, NULL);    } else {	setMouseAccel(WMWidgetScreen(panel->win), panel->acceleration, 		      threshold);    }    free(tmp);}