| Index: runtime/bin/directory_android.cc
|
| diff --git a/runtime/bin/directory_android.cc b/runtime/bin/directory_android.cc
|
| index 9135dd8591545e2846e96d49c4a8e79ab7add2bb..b2cd808af8074df696a4b0f486a32f5dbc1fa603 100644
|
| --- a/runtime/bin/directory_android.cc
|
| +++ b/runtime/bin/directory_android.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 {
|
|
|