aboutsummaryrefslogtreecommitdiff
path: root/t/t4062-diff-pickaxe.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-09-29 16:49:44 -0700
committerJunio C Hamano <gitster@pobox.com>2016-09-29 16:49:45 -0700
commit300e95f7df240a0f6efea09d5e21fcc350e5ce83 (patch)
tree0b2a114656894e4177030ad6019e5581b3981d4c /t/t4062-diff-pickaxe.sh
parentd336b675680c7d4adc9f7190b7974b2ef10c0af4 (diff)
parentb7d36ffca02c23f545d6e098d78180e6e72dfd8d (diff)
downloadgit-300e95f7df240a0f6efea09d5e21fcc350e5ce83.tar.gz
git-300e95f7df240a0f6efea09d5e21fcc350e5ce83.tar.xz
Merge branch 'js/regexec-buf' into maint
Some codepaths in "git diff" used regexec(3) on a buffer that was mmap(2)ed, which may not have a terminating NUL, leading to a read beyond the end of the mapped region. This was fixed by introducing a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND extension. * js/regexec-buf: regex: use regexec_buf() regex: add regexec_buf() that can work on a non NUL-terminated string regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
Diffstat (limited to 't/t4062-diff-pickaxe.sh')
-rwxr-xr-xt/t4062-diff-pickaxe.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/t/t4062-diff-pickaxe.sh b/t/t4062-diff-pickaxe.sh
new file mode 100755
index 000000000..f0bf50bda
--- /dev/null
+++ b/t/t4062-diff-pickaxe.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (c) 2016 Johannes Schindelin
+#
+
+test_description='Pickaxe options'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+ test_commit initial &&
+ printf "%04096d" 0 >4096-zeroes.txt &&
+ git add 4096-zeroes.txt &&
+ test_tick &&
+ git commit -m "A 4k file"
+'
+test_expect_success '-G matches' '
+ git diff --name-only -G "^0{4096}$" HEAD^ >out &&
+ test 4096-zeroes.txt = "$(cat out)"
+'
+
+test_done