mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-18 10:30:28 +00:00
Merge pull request #287 from kiryl/development
filebuf: fix endless loop on writing buf > WRITE_BUFFER_SIZE
This commit is contained in:
commit
1f61e301be
@ -331,6 +331,7 @@ int git_filebuf_write(git_filebuf *file, const void *buff, size_t len)
|
|||||||
error = file->write(file, buf, len);
|
error = file->write(file, buf, len);
|
||||||
if (error < GIT_SUCCESS)
|
if (error < GIT_SUCCESS)
|
||||||
return git__rethrow(error, "Failed to write to buffer");
|
return git__rethrow(error, "Failed to write to buffer");
|
||||||
|
return GIT_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -692,6 +692,19 @@ BEGIN_TEST(filebuf1, "make sure GIT_FILEBUF_APPEND works as expected")
|
|||||||
must_pass(gitfo_unlink(test));
|
must_pass(gitfo_unlink(test));
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
BEGIN_TEST(filebuf2, "make sure git_filebuf_write writes large buffer correctly")
|
||||||
|
git_filebuf file;
|
||||||
|
char test[] = "test";
|
||||||
|
unsigned char buf[4096 * 4]; /* 2 * WRITE_BUFFER_SIZE */
|
||||||
|
|
||||||
|
memset(buf, 0xfe, sizeof(buf));
|
||||||
|
must_pass(git_filebuf_open(&file, test, 0));
|
||||||
|
must_pass(git_filebuf_write(&file, buf, sizeof(buf)));
|
||||||
|
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);
|
||||||
@ -716,4 +729,5 @@ BEGIN_SUITE(core)
|
|||||||
|
|
||||||
ADD_TEST(filebuf0);
|
ADD_TEST(filebuf0);
|
||||||
ADD_TEST(filebuf1);
|
ADD_TEST(filebuf1);
|
||||||
|
ADD_TEST(filebuf2);
|
||||||
END_SUITE
|
END_SUITE
|
||||||
|
Loading…
Reference in New Issue
Block a user