diff options
author | Russell Belfer <rb@github.com> | 2012-07-19 10:23:45 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2012-07-19 10:23:45 -0700 |
commit | 71d273583755c0a2b7f5d608f017f4586add51e4 (patch) | |
tree | 9a70607c88d126591a5fc7241987e5d410e3bf0f /src/diff.c | |
parent | 5a8204f8a88c59c2cb07b93930834ef0a5aaf1fc (diff) | |
download | libgit2-71d273583755c0a2b7f5d608f017f4586add51e4.tar.gz |
Fix bug with merging diffs with null options
A diff that is created with a NULL options parameter could result
in a NULL prefix string, but diff merge was unconditionally
strdup'ing it. I added a test to replicate the issue and then a
new method that does the right thing with NULL values.
Diffstat (limited to 'src/diff.c')
-rw-r--r-- | src/diff.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/diff.c b/src/diff.c index 4fea894f8..09f319e6e 100644 --- a/src/diff.c +++ b/src/diff.c @@ -814,9 +814,9 @@ int git_diff_merge( /* prefix strings also come from old pool, so recreate those.*/ onto->opts.old_prefix = - git_pool_strdup(&onto->pool, onto->opts.old_prefix); + git_pool_strdup_safe(&onto->pool, onto->opts.old_prefix); onto->opts.new_prefix = - git_pool_strdup(&onto->pool, onto->opts.new_prefix); + git_pool_strdup_safe(&onto->pool, onto->opts.new_prefix); } git_vector_foreach(&onto_new, i, delta) |