Re: [PATCH 1/3] ewah_read_mmap: bounds-check mmap reads
- From
Jeff King <peff@peff.net>
- Date
- Jun 16, 2018, 19:14 UTC
- Message-ID
- <20180616191400.GB8914@sigill.intra.peff.net>
- In-Reply-To
- <20180616143513.10086-1-szeder.dev@gmail.com>
On Sat, Jun 16, 2018 at 04:35:13PM +0200, SZEDER Gábor wrote:
Show 13 quoted lines
> > + head -c 512 <$bitmap >$bitmap.tmp && > > + mv $bitmap.tmp $bitmap && > > This line turns out to be problematic on OSX and ultimately causes the > test to fail. > > When OSX's 'mv's destination is read-only, it asks whether to replace > the destination even though in the test its stdin is not a terminal > (and thus doesn't conform to POSIX[1]). Since the '.bitmap' file is > read-only, and since 'mv' obviously doesn't get an affirmative > response from /dev/null, the original '.bitmap' file is not > overwritten, the subsequent 'git rev-list' doesn't print any error > message, and finally 'test_i18ngrep' causes the test to fail.
Right, sorry, I should have remembered that we've run into this before. Using "mv -f" is the standard solution. E.g., c20d4d702f (t1450: use "mv -f" within loose object directory, 2017-01-24).
Junio, can you squash this in to jk/ewah-bounds-check~1?
diff --git a/t/t5310-pack-bitmaps.sh b/t/t5310-pack-bitmaps.sh index c4ed88030c..b11bc392a8 100755 --- a/t/t5310-pack-bitmaps.sh +++ b/t/t5310-pack-bitmaps.sh @@ -338,7 +338,7 @@ test_expect_success 'truncated bitmap fails gracefully' ' bitmap=$(ls .git/objects/pack/*.bitmap) && test_when_finished "rm -f $bitmap" && head -c 512 <$bitmap >$bitmap.tmp && - mv $bitmap.tmp $bitmap && + mv -f $bitmap.tmp $bitmap && git rev-list --use-bitmap-index --count --all >actual 2>stderr && test_cmp expect actual && test_i18ngrep corrupt stderr -Peff