| Index: runtime/bin/directory_win.cc
|
| diff --git a/runtime/bin/directory_win.cc b/runtime/bin/directory_win.cc
|
| index d648f95a2281ca901bf54dd21e392c3643505a29..f1b4bae3a361f62fecbe5263299656184a6a64ee 100644
|
| --- a/runtime/bin/directory_win.cc
|
| +++ b/runtime/bin/directory_win.cc
|
| @@ -23,12 +23,14 @@ class PathBuffer {
|
| int length;
|
|
|
| bool Add(const wchar_t* name) {
|
| - size_t written = _snwprintf(data + length,
|
| - MAX_PATH - length,
|
| - L"%s",
|
| - name);
|
| + int written = _snwprintf(data + length,
|
| + MAX_PATH - length,
|
| + L"%s",
|
| + name);
|
| data[MAX_PATH] = L'\0';
|
| - if (written == wcsnlen(name, MAX_PATH + 1)) {
|
| + if (written <= MAX_PATH - length &&
|
| + written >= 0 &&
|
| + static_cast<size_t>(written) == wcsnlen(name, MAX_PATH + 1)) {
|
| length += written;
|
| return true;
|
| } else {
|
|
|