| OLD | NEW |
| (Empty) |
| 1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
| 2 * Use of this source code is governed by a BSD-style license that can be | |
| 3 * found in the LICENSE file. */ | |
| 4 | |
| 5 #include <limits.h> | |
| 6 #include <string.h> | |
| 7 | |
| 8 #include "nacl_io/kernel_intercept.h" | |
| 9 #include "nacl_io/kernel_wrap.h" | |
| 10 | |
| 11 /* | |
| 12 * This interception should not really be needed under glibc since we can | |
| 13 * hook the internal calls to getcwd. However, we need to intercept it here | |
| 14 * since gtest call getcwd in a static constructor which general runs before | |
| 15 * nacl_io is initiliased. | |
| 16 */ | |
| 17 char* getcwd(char* buf, size_t size) { | |
| 18 // If size is 0, allocate as much as we need. | |
| 19 if (size == 0) { | |
| 20 char stack_buf[PATH_MAX + 1]; | |
| 21 if (!ki_getcwd(stack_buf, PATH_MAX)) | |
| 22 return NULL; | |
| 23 size = strlen(stack_buf) + 1; | |
| 24 } | |
| 25 // Allocate the buffer if needed | |
| 26 if (buf == NULL) { | |
| 27 buf = (char*)malloc(size); | |
| 28 } | |
| 29 return ki_getcwd(buf, size); | |
| 30 } | |
| OLD | NEW |