Commit 2ba7dbbe35fe8a76f98c9105f0e22507a492d1a8

Scott Furry 2019-06-24T14:55:15

Resolve static check warnings in example code Using cppcheck on libgit2 sources indicated two warnings in example code. merge.c was reported as having a memory leak. Fix applied was to `free()` memory pointed to by `parents`. init.c was reported as having a null pointer dereference on variable arg. Function 'usage' was being called with a null variable. Changed supplied parameter to empty string.

diff --git a/examples/init.c b/examples/init.c
index 23044d1..e9841bc 100644
--- a/examples/init.c
+++ b/examples/init.c
@@ -244,5 +244,5 @@ static void parse_opts(struct opts *o, int argc, char *argv[])
 	}
 
 	if (!o->dir)
-		usage("must specify directory to init", NULL);
+		usage("must specify directory to init", "");
 }
diff --git a/examples/merge.c b/examples/merge.c
index 8ddb79b..25b0a69 100644
--- a/examples/merge.c
+++ b/examples/merge.c
@@ -220,6 +220,7 @@ static int create_merge_commit(git_repository *repo, git_index *index, merge_opt
 	check_lg2(git_repository_head(&head_ref, repo), "failed to get repo HEAD", NULL);
 	if (resolve_refish(&merge_commit, repo, opts->heads[0])) {
 		fprintf(stderr, "failed to resolve refish %s", opts->heads[0]);
+		free(parents);
 		return -1;
 	}