Chromium Code Reviews| Index: third_party/android_crazy_linker/src/src/crazy_linker_proc_maps.cpp |
| diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_proc_maps.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_proc_maps.cpp |
| index 104f609df48aac2c99608af67086ece4ed058007..713870bea6ccbe32af090136c51c8e14534f4f89 100644 |
| --- a/third_party/android_crazy_linker/src/src/crazy_linker_proc_maps.cpp |
| +++ b/third_party/android_crazy_linker/src/src/crazy_linker_proc_maps.cpp |
| @@ -56,10 +56,15 @@ bool ParseProcMapsLine(const char* line, |
| p++; |
| // find start and end of current token, and compute start of |
| - // next search. |
| + // next search. The result of memchr(_,_,0) is undefined, treated as |
| + // not-found. |
| const char* tok_start = p; |
| - const char* tok_end = |
| - static_cast<const char*>(memchr(p, separator, line_end - p)); |
| + const size_t range = line_end - p; |
| + const char* tok_end; |
| + if (range > 0) |
| + tok_end = static_cast<const char*>(memchr(p, separator, range)); |
| + else |
| + tok_end = NULL; |
|
rmcilroy
2014/07/22 09:16:36
Optional suggestion - I'm not sure if the crazy li
|
| if (!tok_end) { |
| tok_end = line_end; |
| p = line_end; |