mingw: avoid a buffer overrun in needs_hiding()
cover mingw: avoid a buffer overrun in needs_hiding()
On Unix, files are hidden from the output of ls by default when their names start with a .. On Windows, there is an explicit flag that you need to set.
It is quite uncommon, though, to hide all of the "dot files" on Windows, which is why Git hides only .git by default, and it has a setting to override this default (core.hideDotFiles).
The code to determine whether that flag needs to be set for a given file had a buffer overrun, though, if the path that was passed into the function ended with a directory separator. This patch fixes this.
The original contribution by Alex is over at
https://github.com/gitgitgadget/git/pull/414, and I worked with him to evolve it into the current version.
Johannes Schindelin (1):
mingw: avoid a buffer overrun in needs_hiding()
compat/mingw.c | 2 ++ 1 file changed, 2 insertions(+)
base-commit: 566a1439f6f56c2171b8853ddbca0ad3f5098770
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-427%2Fdscho%2Ffix-needs-hiding-buffer-overrun-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-427/dscho/fix-needs-hiding-buffer-overrun-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/427
Signature · 1 line
gitgitgadget
PATCH 1/1 mingw: avoid a buffer overrun in `needs_hiding()`
From: Johannes Schindelin <[email protected]>
When this function is passed a path with a trailing slash, it runs right over the end of that path.
Let's fix this.
--- compat/mingw.c | 2 ++ 1 file changed, 2 insertions(+)
compat/mingw.c +2 -0
@@ -363,6 +363,8 @@ static inline int needs_hiding(const char *path)/* ignore trailing slashes */ if (*path) basename = path; +else +break ; }if (hide_dotfiles ==HIDE_DOTFILES_TRUE )
Signature · 1 line
gitgitgadget