summaryrefslogtreecommitdiff
path: root/src/fs_path.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2021-11-01 13:04:40 -0400
committerEdward Thomson <ethomson@edwardthomson.com>2021-11-09 15:17:17 +0000
commitdd748dbede1a36f1e929461ecbfcde749eb685bb (patch)
tree60e695e05378a21db5218c81285a5c0e3b5de395 /src/fs_path.c
parentbef02d3e638ce8c95c9e63622b46d87a0f8ee2b2 (diff)
downloadlibgit2-dd748dbede1a36f1e929461ecbfcde749eb685bb.tar.gz
fs_path: make empty component validation optional
Diffstat (limited to 'src/fs_path.c')
-rw-r--r--src/fs_path.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/fs_path.c b/src/fs_path.c
index fa27a6e73..483b21c1e 100644
--- a/src/fs_path.c
+++ b/src/fs_path.c
@@ -1599,7 +1599,7 @@ static bool validate_component(
unsigned int flags)
{
if (len == 0)
- return false;
+ return !(flags & GIT_FS_PATH_REJECT_EMPTY_COMPONENT);
if ((flags & GIT_FS_PATH_REJECT_TRAVERSAL) &&
len == 1 && component[0] == '.')
@@ -1644,6 +1644,9 @@ bool git_fs_path_is_valid_str_ext(
const char *start, *c;
size_t len = 0;
+ if (!flags)
+ return true;
+
for (start = c = path->ptr; *c && len < path->size; c++, len++) {
if (!validate_char(*c, flags))
return false;