| Index: src/d8.cc | 
| diff --git a/src/d8.cc b/src/d8.cc | 
| index 653e36694d0c8d9bd94c7e3baaf3c8af3433f08a..132891e2b8a694919c0643118dea5fd8ef82b403 100644 | 
| --- a/src/d8.cc | 
| +++ b/src/d8.cc | 
| @@ -1555,11 +1555,13 @@ class StartupDataHandler { | 
| if (natives_blob || snapshot_blob) { | 
| LoadFromFiles(natives_blob, snapshot_blob); | 
| } else { | 
| -      char natives[100], snapshot[100]; | 
| -      LoadFromFiles( | 
| -          RelativePath(natives, exec_path, "natives_blob.bin", sizeof(natives)), | 
| -          RelativePath(snapshot, exec_path, "snapshot_blob.bin", | 
| -                       sizeof(snapshot))); | 
| +      char* natives; | 
| +      char* snapshot; | 
| +      LoadFromFiles(RelativePath(&natives, exec_path, "natives_blob.bin"), | 
| +                    RelativePath(&snapshot, exec_path, "snapshot_blob.bin")); | 
| + | 
| +      free(natives); | 
| +      free(snapshot); | 
| } | 
| } | 
|  | 
| @@ -1569,19 +1571,21 @@ class StartupDataHandler { | 
| } | 
|  | 
| private: | 
| -  static char* RelativePath(char* buffer, const char* exec_path, | 
| -                            const char* name, int buffer_length) { | 
| +  static char* RelativePath(char** buffer, const char* exec_path, | 
| +                            const char* name) { | 
| DCHECK(exec_path); | 
| const char* last_slash = strrchr(exec_path, '/'); | 
| if (last_slash) { | 
| int after_slash = last_slash - exec_path + 1; | 
| -      DCHECK(buffer_length > after_slash); | 
| -      strncpy(buffer, exec_path, after_slash); | 
| -      buffer[after_slash] = '\0'; | 
| -      return strncat(buffer, name, buffer_length); | 
| +      int name_length = strlen(name); | 
| +      *buffer = | 
| +          reinterpret_cast<char*>(calloc(after_slash + name_length + 1, 1)); | 
| +      strncpy(*buffer, exec_path, after_slash); | 
| +      strncat(*buffer, name, name_length); | 
| } else { | 
| -      return strncpy(buffer, name, buffer_length); | 
| +      *buffer = strdup(name); | 
| } | 
| +    return *buffer; | 
| } | 
|  | 
| void LoadFromFiles(const char* natives_blob, const char* snapshot_blob) { | 
|  |