rem: free(dirs);
add: wfree(dirs);
context: static WRootMenuData *dir_openMenuFile(char *paths, time_t *timestamp){    DirMenuReaderData *data;    char **dirs;    int dirN;    time_t checksum = 0;    int i, c;    /* timestamp for directory is a "checksum" of the directory times */    wtokensplit(paths, &dirs, &dirN);    if (dirN == 0) {	return NULL;    }    for (c = 0, i = 0; i < dirN; i++) {	char *tmp;	if (strcmp(dirs[i], "-noext")==0) {	    i++;	    continue;	}	tmp = wexpandpath(dirs[i]);	free(dirs[i]);	dirs[i] = tmp;	if (stat(dirs[i], &stat_buf)<0) {	    wsyserror(_("%s:could not stat menu"), dirs[i]);	    free(dirs[i]);	    dirs[i] = NULL;	} else {	    c++;	    checksum += stat_buf.st_mtime;	}    }    if (*timestamp == checksum && *timestamp != 0) {	return NULL;    }    if (c == 0) {	for (i = 0; i < dirN; i++) {	    if (dirs[i])		free(dirs[i]);	}	free(dirs);		return NULL;    }        data = wmalloc(sizeof(DirMenuReaderData));    data->reader = DirMenuReader;            }