Avoid malloc(0) in getdents parsers

On end of directory, getdents returns 0.  This return value is used to
then try and do malloc(0), but on some systems this will always return
NULL.  Since the code won't read the pointer in question if len is 0,
then don't bother calling malloc(0) and set the pointer to NULL ourself.
* file.c (sys_getdents, sys_getdents64): Avoid malloc(0) call.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
diff --git a/file.c b/file.c
index c6e3b52..4a2512f 100644
--- a/file.c
+++ b/file.c
@@ -2337,7 +2337,8 @@
 		return 0;
 	}
 	len = tcp->u_rval;
-	if ((buf = malloc(len)) == NULL) {
+	buf = len ? malloc(len) : NULL;
+	if (len && !buf) {
 		tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
 		fprintf(stderr, "out of memory\n");
 		return 0;
@@ -2420,7 +2421,8 @@
 		return 0;
 	}
 	len = tcp->u_rval;
-	if ((buf = malloc(len)) == NULL) {
+	buf = len ? malloc(len) : NULL;
+	if (len && !buf) {
 		tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
 		fprintf(stderr, "out of memory\n");
 		return 0;