diff options
| author | Vicent Martà <tanoku@gmail.com> | 2011-12-25 00:22:20 +0100 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2011-12-25 00:22:20 +0100 |
| commit | fa51565625902291f278d41c9254f8ab38bd916d (patch) | |
| tree | 73ec7530f3b8bd6395ce1ef63b5e24bb168c3490 /tests-clay/refs/crashes.c | |
| parent | 1b8cbe8be82cd55b900453a6bea7d9068c39c825 (diff) | |
| download | libgit2-fa51565625902291f278d41c9254f8ab38bd916d.tar.gz | |
refs: Fix double free
Includes relevant Clay test
Diffstat (limited to 'tests-clay/refs/crashes.c')
| -rw-r--r-- | tests-clay/refs/crashes.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests-clay/refs/crashes.c b/tests-clay/refs/crashes.c new file mode 100644 index 000000000..51eb15d0d --- /dev/null +++ b/tests-clay/refs/crashes.c @@ -0,0 +1,15 @@ +#include "clay_libgit2.h" + +void test_refs_crashes__double_free(void) +{ + git_repository *repo; + git_reference *ref, *ref2; + const char *REFNAME = "refs/heads/xxx"; + + cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); + cl_git_pass(git_reference_create_symbolic(&ref, repo, REFNAME, "refs/heads/master", 0)); + cl_git_pass(git_reference_lookup(&ref2, repo, REFNAME)); + cl_git_pass(git_reference_delete(ref)); + /* reference is gone from disk, so reloading it will fail */ + cl_must_fail(git_reference_reload(ref2)); +} |
