static void *pmem;
pmem = realloc(pcur, len);
- if (!pmem && pcur)
+ if (!pmem)
free(pcur);
return pmem;
return 0;
}
+static void dentfree(struct entry *dents)
+{
+ free(pnamebuf);
+ free(dents);
+}
+
static int dentfill(char *path, struct entry **dents,
int (*filter)(regex_t *, char *), regex_t *re)
{
/* Should never be null */
if (closedir(dirp) == -1) {
- if (*dents) {
- free(pnamebuf);
- free(*dents);
- }
+ dentfree(*dents);
errexit();
}
return n;
}
-static void dentfree(struct entry *dents)
-{
- free(pnamebuf);
- free(dents);
-}
-
/* Return the position of the matching entry or 0 otherwise */
static int dentfind(struct entry *dents, const char *fname, int n)
{
mkpath(path, dents[cur].name, newpath, PATH_MAX);
if (lstat(newpath, &sb) == -1) {
- if (dents)
- dentfree(dents);
+ dentfree(dents);
errexit();
}