Index: sandbox/win/src/win_utils.cc |
diff --git a/sandbox/win/src/win_utils.cc b/sandbox/win/src/win_utils.cc |
index 53a12a4f292d4da12435fd20ad3858f57feaddf5..4445246c997702266fbda430b59626bd2f5e0146 100644 |
--- a/sandbox/win/src/win_utils.cc |
+++ b/sandbox/win/src/win_utils.cc |
@@ -95,7 +95,8 @@ DWORD IsReparsePoint(const base::string16& full_path, bool* result) { |
base::string16::size_type last_pos = base::string16::npos; |
do { |
- path = path.substr(0, last_pos); |
+ if (last_pos != base::string16::npos) |
+ path = path.substr(0, last_pos + 1); |
DWORD attributes = ::GetFileAttributes(path.c_str()); |
if (INVALID_FILE_ATTRIBUTES == attributes) { |
@@ -113,6 +114,7 @@ DWORD IsReparsePoint(const base::string16& full_path, bool* result) { |
return ERROR_SUCCESS; |
} |
+ path = path.substr(0, last_pos); |
last_pos = path.rfind(L'\\'); |
} while (last_pos != base::string16::npos); |
rvargas (doing something else)
2014/02/03 23:09:24
Looks like we should instead break the loop when w
|