Thread (15 messages) 15 messages, 5 authors, 2018-06-28

Re: [PATCH 29/29] t/test-lib: teach --chain-lint to detect broken &&-chains in subshells

flat view

From: Eric Sunshine <hidden>
Date: 2018-06-26 21:13:19

Possibly related (same subject, not in this thread)

On Tue, Jun 26, 2018 at 5:01 PM Jeff King [off-list ref] wrote:
On Tue, Jun 26, 2018 at 04:46:18PM -0400, Eric Sunshine wrote:
quoted
Some of these dangers can be de-thoothed during the linting phase by
defining do-nothing shell functions:

    cp () { :; }
    mv () { :; }
    ln () { :; }

That, at least, makes the scariest case ("rm") much less so.
Now that's an interesting idea. We can't catch every dangerous action
(notably ">" would be hard to override), but it should be pretty cheap
to cover some obvious ones.
Taking the idea a bit further, the 'sed' script could also throw away
strings of "../" inside subshells, which would help defang the more
difficult cases, like "echo x >../git.c". There are pathological
cases, of course, which it wouldn't catch:

    P=../git.c
    test_expect_success 'foo' '
        (
            cd dir &&
            echo x >$P
        )
    '

but it does help mitigate the issue for the most typical cases.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help