Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/path.c
diff options
context:
space:
mode:
authorAlex Vandiver <alexmv@dropbox.com>2017-10-04 09:27:46 +0300
committerJunio C Hamano <gitster@pobox.com>2017-10-04 12:58:53 +0300
commit2a387b17c5bc5e0872bed352a41a2b312ea86f9b (patch)
tree28e39bf1dc1bbff4003023509b0222b86b4c6f2c /path.c
parentdcdb71f1599734ae46870d3eca11e2093bbd7520 (diff)
fsmonitor: read entirety of watchman output
In Perl, setting $/ sets the string that is used as the "record separator," which sets the boundary that the `<>` construct reads to. Setting `local $/ = 0666;` evaluates the octal, getting 438, and stringifies it. Thus, the later read from `<CHLD_OUT>` stops as soon as it encounters the string "438" in the watchman output, yielding invalid JSON; repositories containing filenames with SHA1 hashes are able to trip this easily. Set `$/` to undefined, thus slurping all output from watchman. Also close STDIN which is provided to watchman, to better guarantee that we cannot deadlock with watchman while both attempting to read. Signed-off-by: Alex Vandiver <alexmv@dropbox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'path.c')
0 files changed, 0 insertions, 0 deletions