From 433718fb77f527a7f8909ea88f03ed2054f88a7d Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 19 Jul 2018 04:17:21 +0000 Subject: [PATCH] Fix memory leak --- src/fcstat.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/fcstat.c b/src/fcstat.c index f6e1aaa..5aa1643 100644 --- a/src/fcstat.c +++ b/src/fcstat.c @@ -218,6 +218,14 @@ FcScandir (const char *dirp, size_t dentlen = FcPtrToOffset (dent, dent->d_name) + strlen (dent->d_name) + 1; dentlen = ((dentlen + ALIGNOF_VOID_P - 1) & ~(ALIGNOF_VOID_P - 1)); p = (struct dirent *) malloc (dentlen); + if (!p) + { + free_dirent (dlist); + closedir (d); + errno = ENOMEM; + + return -1; + } memcpy (p, dent, dentlen); if ((n + 1) >= lsize) { @@ -225,6 +233,7 @@ FcScandir (const char *dirp, dlp = (struct dirent **) realloc (dlist, sizeof (struct dirent *) * lsize); if (!dlp) { + free (p); free_dirent (dlist); closedir (d); errno = ENOMEM;