Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH v3 2/3] relative_path should honor DOS and UNC paths

From: Jiang Xin <hidden>
Date: 2016-06-15 22:58:47

2013/9/18 Junio C Hamano [off-list ref]:
Jiang Xin [off-list ref] writes:
quoted
diff --git a/compat/mingw.h b/compat/mingw.h
index bd0a88b..06e9f49 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -311,6 +311,15 @@ int winansi_fprintf(FILE *stream, const char *format, ...) __attribute__((format

 #define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':')
 #define is_dir_sep(c) ((c) == '/' || (c) == '\\')
+static inline int is_unc_path(const char *path)
+{
+     if (!is_dir_sep(*path) || !is_dir_sep(*(path+1)) || is_dir_sep(*(path+2)))
+             return 0;
A UNC path must start with two slashes, but not three or more slashes.
If path[1] == '\0', it would be !is_dir_sep() and we end up
inspecting past the end of the string?
The funciton "is_unc_path" will return false (0), if path is
"", "/", "//", "///three/slashes/", or "/usr/local".
So the problem is ?

-- 
Jiang Xin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help