Commit 3bf3ad9f by Vicent Martí

Merge pull request #269 from schu/infinite-append

gitfo_read: fix read-loop
parents b3f2d4cb 28f7869d
...@@ -90,10 +90,8 @@ int gitfo_read(git_file fd, void *buf, size_t cnt) ...@@ -90,10 +90,8 @@ int gitfo_read(git_file fd, void *buf, size_t cnt)
continue; continue;
return git__throw(GIT_EOSERR, "Failed to read from file"); return git__throw(GIT_EOSERR, "Failed to read from file");
} }
if (!r) { if (!r)
errno = EPIPE; break;
return git__throw(GIT_EOSERR, "Failed to read from file");
}
cnt -= r; cnt -= r;
b += r; b += r;
} }
......
...@@ -675,6 +675,23 @@ BEGIN_TEST(filebuf0, "make sure git_filebuf_open doesn't delete an existing lock ...@@ -675,6 +675,23 @@ BEGIN_TEST(filebuf0, "make sure git_filebuf_open doesn't delete an existing lock
must_pass(gitfo_unlink(testlock)); must_pass(gitfo_unlink(testlock));
END_TEST END_TEST
BEGIN_TEST(filebuf1, "make sure GIT_FILEBUF_APPEND works as expected")
git_filebuf file;
int fd;
char test[] = "test";
fd = gitfo_creat(test, 0644);
must_pass(fd);
must_pass(gitfo_write(fd, "libgit2 rocks\n", 14));
must_pass(gitfo_close(fd));
must_pass(git_filebuf_open(&file, test, GIT_FILEBUF_APPEND));
must_pass(git_filebuf_printf(&file, "%s\n", "libgit2 rocks"));
must_pass(git_filebuf_commit(&file));
must_pass(gitfo_unlink(test));
END_TEST
BEGIN_SUITE(core) BEGIN_SUITE(core)
ADD_TEST(string0); ADD_TEST(string0);
ADD_TEST(string1); ADD_TEST(string1);
...@@ -698,4 +715,5 @@ BEGIN_SUITE(core) ...@@ -698,4 +715,5 @@ BEGIN_SUITE(core)
ADD_TEST(dirent4); ADD_TEST(dirent4);
ADD_TEST(filebuf0); ADD_TEST(filebuf0);
ADD_TEST(filebuf1);
END_SUITE END_SUITE
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment