Commit 69055813046366967563e0b78ee29113ef610886

Patrick Steinhardt 2019-06-28T10:50:01

fuzzers: make printf formatters cross-platform compatible The `printf` formatters in our standalone fuzzing driver are currently using the "%m" specifier, which is a GNU extension that prints the error message for the error code in `errno`. As we're using libgit2 functions in both cases anyway, let's just use `git_error_last` instead to make this valid on all platforms.

diff --git a/fuzzers/standalone_driver.c b/fuzzers/standalone_driver.c
index 000bfbf..e8ce3fd 100644
--- a/fuzzers/standalone_driver.c
+++ b/fuzzers/standalone_driver.c
@@ -24,7 +24,7 @@ static int run_one_file(const char *filename)
 	int error = 0;
 
 	if (git_futils_readbuffer(&buf, filename) < 0) {
-		fprintf(stderr, "Failed to read %s: %m\n", filename);
+		fprintf(stderr, "Failed to read %s: %s\n", filename, git_error_last()->message);
 		error = -1;
 		goto exit;
 	}
@@ -57,7 +57,8 @@ int main(int argc, char **argv)
 	LLVMFuzzerInitialize(&argc, &argv);
 
 	if (git_path_dirload(&corpus_files, argv[1], 0, 0x0) < 0) {
-		fprintf(stderr, "Failed to scan corpus directory: %m\n");
+		fprintf(stderr, "Failed to scan corpus directory '%s': %s\n",
+			argv[1], git_error_last()->message);
 		error = -1;
 		goto exit;
 	}