ext/libuv/src/unix/fs.c in libuv-0.11.5 vs ext/libuv/src/unix/fs.c in libuv-0.11.7
- old
+ new
@@ -211,13 +211,16 @@
size_t len;
char *buf;
int i;
int n;
+ dents = NULL;
n = scandir(req->path, &dents, uv__fs_readdir_filter, alphasort);
- if (n == -1 || n == 0)
+ if (n == 0)
+ goto out; /* osx still needs to deallocate some memory */
+ else if (n == -1)
return n;
len = 0;
for (i = 0; i < n; i++)
@@ -241,10 +244,10 @@
req->ptr = buf;
out:
saved_errno = errno;
- {
+ if (dents != NULL) {
for (i = 0; i < n; i++)
free(dents[i]);
free(dents);
}
errno = saved_errno;