summaryrefslogtreecommitdiff
path: root/lib/util.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@ovn.org>2018-07-24 09:48:45 -0700
committerBen Pfaff <blp@ovn.org>2018-08-03 09:21:54 -0700
commit4d8f04b3e93d7a853619e664abde955d0dfe0c48 (patch)
tree41d397cb0619de331b58b7735dc6a86c458796d8 /lib/util.h
parent7491caa37f3bead9420e7fcc6a3e74b0ec18da00 (diff)
downloadopenvswitch-4d8f04b3e93d7a853619e664abde955d0dfe0c48.tar.gz
util: Fix abs_file_name() bugs on Windows.
abs_file_name() believed that a file name that begins with / or contains : is absolute and that any other file name is relative. On Windows, this is wrong in at least the following ways: * / and \ are interchangeable on Windows. * A name that begins with \\ or // is also absolute. * A name that begins with X: but not X:\ is not absolute. * A name with : in some position other than the second position is not absolute (although it might not be valid either?). Furthermore, Windows has more than one current working directory (one per volume letter), so trying to make a file name absolute by just prefixing the current working directory for the current volume results in silliness. This patch attempts to fix the problem. This makes OVS link against shlwapi, which is needed to use PathIsRelative(). Found by inspection. Acked-by: Alin Gabriel Serdean <aserdean@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib/util.h')
-rw-r--r--lib/util.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/util.h b/lib/util.h
index 0061bb986..fd414489c 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -231,6 +231,7 @@ char *dir_name(const char *file_name);
char *base_name(const char *file_name);
#endif
char *abs_file_name(const char *dir, const char *file_name);
+bool is_file_name_absolute(const char *);
char *follow_symlinks(const char *filename);