builtin/config: check for writeability after source is set up
The `check_write()` function verifies that we do not try to write to a config source that cannot be written to, like for example stdin. But while the new subcommands do call this function, they do so before calling `handle_config_location()`. Consequently, we only end up checking the default config location for writeability, not the location that was actually specified by the caller of git-config(1). Fix this by calling `check_write()` after `handle_config_location()`. We will further clarify the relationship between those two functions in a subsequent commit where we remove the global state that both implicitly rely on. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
9cab5e8078
commit
e44b018c52
@@ -2835,6 +2835,12 @@ test_expect_success 'specifying multiple modes causes failure' '
|
||||
test_cmp expect err
|
||||
'
|
||||
|
||||
test_expect_success 'writing to stdin is rejected' '
|
||||
echo "fatal: writing to stdin is not supported" >expect &&
|
||||
test_must_fail git config ${mode_set} --file - foo.bar baz 2>err &&
|
||||
test_cmp expect err
|
||||
'
|
||||
|
||||
done
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user