Index: chrome/browser/views/shell_dialogs.cc |
=================================================================== |
--- chrome/browser/views/shell_dialogs.cc (revision 1800) |
+++ chrome/browser/views/shell_dialogs.cc (working copy) |
@@ -340,8 +340,13 @@ |
ofn.lStructSize = sizeof(ofn); |
ofn.hwndOwner = owner; |
+ // This will clamp the number of characters copied from the supplied path |
+ // to the value of MAX_PATH. |
+ size_t name_size = std::min(path->length() + 1, |
+ static_cast<size_t>(MAX_PATH)); |
wchar_t filename[MAX_PATH]; |
- memcpy(filename, path->c_str(), (path->length()+1) * sizeof(wchar_t)); |
+ memcpy(filename, path->c_str(), name_size * sizeof(wchar_t)); |
+ filename[MAX_PATH - 1] = '\0'; |
ofn.lpstrFile = filename; |
ofn.nMaxFile = MAX_PATH; |