rem: return NULL;
add: wfree(fname); return NULL;
context: WMCreateNormalFont(WMScreen *scrPtr, char *fontName){    WMFont *font;    Display *display = scrPtr->display;    char *fname, *ptr;    if ((ptr = strchr(fontName, ','))) {	fname = wmalloc(ptr - fontName + 1);	strncpy(fname, fontName, ptr - fontName);	fname[ptr - fontName] = 0;    } else {	fname = wstrdup(fontName);    }    font = WMHashGet(scrPtr->fontCache, fname);    if (font) {	WMRetainFont(font);	wfree(fname);	return font;    }    font = malloc(sizeof(WMFont));    if (!font) {	wfree(fname);	return NULL;    }    memset(font, 0, sizeof(WMFont));        font->notFontSet = 1;        font->screen = scrPtr;        font->font.normal = XLoadQueryFont(display, fname);    if (!font->font.normal) {	wfree(font);	return NULL;    }    font->height = font->font.normal->ascent+font->font.normal->descent;    font->y = font->font.normal->ascent;    font->refCount = 1;    font->name = fname;    assert(WMHashInsert(scrPtr->fontCache, font->name, font)==NULL);    return font;}