Fix undefined behaviour and save some bytes as suggested by Manuel Novoa III
diff --git a/coreutils/realpath.c b/coreutils/realpath.c
index 7ef935e..f89e0a2 100644
--- a/coreutils/realpath.c
+++ b/coreutils/realpath.c
@@ -21,24 +21,22 @@
 
 int realpath_main(int argc, char **argv)
 {
-	char *resolved_path;
-	int count;
+	RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX);
 
-	if (argc == 1) {
+	if (--argc == 0) {
 		show_usage();
 	}
 
-	resolved_path = malloc(PATH_MAX);
-
-	for (count = 1; count < argc; count++) {
-		resolved_path = realpath(argv[count], resolved_path);
-		if (resolved_path) {
+	do {
+		argv++;
+		if (realpath(*argv, resolved_path) != NULL) {
 			puts(resolved_path);
 		} else {
-			perror_msg("%s", argv[count]);
+			perror_msg("%s", *argv);
 		}
-	}
-	free(resolved_path);
+	} while (--argc);
+
+	RELEASE_CONFIG_BUFFER(resolved_path);
 
 	return(EXIT_SUCCESS);
-}
\ No newline at end of file
+}