diff options
author | Scott Graham <scottmg@chromium.org> | 2015-06-08 20:21:55 (GMT) |
---|---|---|
committer | Scott Graham <scottmg@chromium.org> | 2015-06-08 20:21:55 (GMT) |
commit | a2d1cf2f26bdd7a326a3ef6186ee507fd87868d0 (patch) | |
tree | 4792697f4e5c73661991ca1b90b919ff3a60c15c /src/includes_normalize-win32.cc | |
parent | f0f36ad1c72f6100a8957f035769fda50b69919f (diff) | |
download | Ninja-a2d1cf2f26bdd7a326a3ef6186ee507fd87868d0.zip Ninja-a2d1cf2f26bdd7a326a3ef6186ee507fd87868d0.tar.gz Ninja-a2d1cf2f26bdd7a326a3ef6186ee507fd87868d0.tar.bz2 |
Fix crash in attempting to canonicalize paths longer than _MAX_PATH
Diffstat (limited to 'src/includes_normalize-win32.cc')
-rw-r--r-- | src/includes_normalize-win32.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/includes_normalize-win32.cc b/src/includes_normalize-win32.cc index 1e88a0a..066f512 100644 --- a/src/includes_normalize-win32.cc +++ b/src/includes_normalize-win32.cc @@ -96,8 +96,12 @@ string IncludesNormalize::Relativize(StringPiece path, const string& start) { string IncludesNormalize::Normalize(const string& input, const char* relative_to) { - char copy[_MAX_PATH]; + char copy[_MAX_PATH + 1]; size_t len = input.size(); + if (len > _MAX_PATH) { + Warning("path too long '%s'\n", input.c_str()); + return input; + } strncpy(copy, input.c_str(), input.size() + 1); string err; unsigned int slash_bits; |