diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-10-06 13:22:24 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-06 13:54:32 -0700 |
commit | 64589a03a8ffb3eb4fb2ff8f416ff638a9aaa439 (patch) | |
tree | 96db0b639a87af13e8a7091d6ef9c6940a82b7c7 /config.c | |
parent | 0d0ff65cea5424a202510fa4e28a461d36032276 (diff) | |
download | git-64589a03a8ffb3eb4fb2ff8f416ff638a9aaa439.tar.gz |
attr: read core.attributesfile from git_default_core_config
This code calls git_config from a helper function to parse the config entry
it is interested in. Calling git_config in this way may cause a problem if
the helper function can be called after a previous call to git_config by
another function since the second call to git_config may reset some
variable to the value in the config file which was previously overridden.
The above is not a problem in this case since the function passed to
git_config only parses one config entry and the variable it sets is not
assigned outside of the parsing function. But a programmer who desires
all of the standard config options to be parsed may be tempted to modify
git_attr_config() so that it falls back to git_default_config() and then it
_would_ be vulnerable to the above described behavior.
So, move the call to git_config up into the top-level cmd_* function and
move the responsibility for parsing core.attributesfile into the main
config file parser.
Which is only the logical thing to do ;-)
Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -491,6 +491,9 @@ static int git_default_core_config(const char *var, const char *value) return 0; } + if (!strcmp(var, "core.attributesfile")) + return git_config_pathname(&git_attributes_file, var, value); + if (!strcmp(var, "core.bare")) { is_bare_repository_cfg = git_config_bool(var, value); return 0; |