| Index: runtime/bin/directory_linux.cc
|
| diff --git a/runtime/bin/directory_linux.cc b/runtime/bin/directory_linux.cc
|
| index dcd123a090b290312e2a4794e226ac3593ae298d..3775ba1a06bfbd8b1bcea5c4709688eb576590e0 100644
|
| --- a/runtime/bin/directory_linux.cc
|
| +++ b/runtime/bin/directory_linux.cc
|
| @@ -28,12 +28,14 @@ class PathBuffer {
|
| int length;
|
|
|
| bool Add(const char* name) {
|
| - size_t written = snprintf(data + length,
|
| - PATH_MAX - length,
|
| - "%s",
|
| - name);
|
| + int written = snprintf(data + length,
|
| + PATH_MAX - length,
|
| + "%s",
|
| + name);
|
| data[PATH_MAX] = '\0';
|
| - if (written == strnlen(name, PATH_MAX + 1)) {
|
| + if (written <= PATH_MAX - length &&
|
| + written >= 0 &&
|
| + static_cast<size_t>(written) == strnlen(name, PATH_MAX + 1)) {
|
| length += written;
|
| return true;
|
| } else {
|
|
|