summaryrefslogtreecommitdiff
path: root/tests/long-line-vs-2GiB-read
Commit message (Collapse)AuthorAgeFilesLines
* tests: avoid FP failure due to exhausted memoryJim Meyering2013-12-211-0/+3
| | | | | * tests/long-line-vs-2GiB-read: Don't declare the test "failed" when running out of memory. In that case, skip it.
* grep: handle lines longer than INT_MAX on more systemsJim Meyering2013-12-181-0/+22
When trying to exercize some long-line-handling code, I ran these commands: $ dd bs=1 seek=2G of=big < /dev/null; grep -l x big; echo $? grep: big: Invalid argument 2 grep should not have issued that diagnostic, and it should have exited with status 1, not 2. What happened? grep read the 2GiB of NULs, doubled its buffer size, copied the 2GiB into the new 4GiB buffer, and proceeded to call "read" with a byte-count argument of 2^32. On at least Darwin 12.5.0, that makes read fail with EINVAL. The solution is to use gnulib's safe_read wrapper. * src/main.c: Include "safe-read.h" (fillbuf): Use safe_read, rather than bare read. The latter cannot handle a read size of 2^32 on some systems. * bootstrap.conf (gnulib_modules): Add safe-read. * tests/long-line-vs-2GiB-read: New file. * tests/Makefile.am (TESTS): Add it. * NEWS (Bug fixes): Mention it.