Commit 6f0b8142e65b43f2224027a7abc67116ab6ad1a7

Ben Straub 2013-05-23T17:28:52

Stop leaking memory

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/src/repository.c b/src/repository.c
index b0359a5..28505e8 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -1827,10 +1827,15 @@ int git_repository_is_shallow(git_repository *repo)
 {
 	git_buf path = GIT_BUF_INIT;
 	struct stat st;
+	int error;
 
 	git_buf_joinpath(&path, repo->path_repository, "shallow");
+	error = git_path_lstat(path.ptr, &st);
+	git_buf_free(&path);
 
-	if (git_path_lstat(path.ptr, &st) == GIT_ENOTFOUND)
+	if (error == GIT_ENOTFOUND)
 		return 0;
+	if (error < 0)
+		return -1;
 	return st.st_size == 0 ? 0 : 1;
 }