1 : // Copyright 2014 Google Inc. All Rights Reserved.
2 : //
3 : // Licensed under the Apache License, Version 2.0 (the "License");
4 : // you may not use this file except in compliance with the License.
5 : // You may obtain a copy of the License at
6 : //
7 : // http://www.apache.org/licenses/LICENSE-2.0
8 : //
9 : // Unless required by applicable law or agreed to in writing, software
10 : // distributed under the License is distributed on an "AS IS" BASIS,
11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 : // See the License for the specific language governing permissions and
13 : // limitations under the License.
14 : //
15 : // Dummy CRT interceptors for the memory profiler. This is simply for
16 : // maintaining ABI compatibility.
17 :
18 : #include <string.h>
19 :
20 m : extern "C" {
21 :
22 m : void* asan_memcpy(void* dst, const void* src, size_t size) {
23 m : return ::memcpy(dst, src, size);
24 m : }
25 :
26 m : void* asan_memmove(void* dst, const void* src, size_t size) {
27 m : return ::memmove(dst, src, size);
28 m : }
29 :
30 m : void* asan_memset(void* dst, int val, size_t size) {
31 m : return ::memset(dst, val, size);
32 m : }
33 :
34 m : const void* asan_memchr(const void* buf, int val, size_t max_count) {
35 m : return ::memchr(buf, val, max_count);
36 m : }
37 :
38 m : size_t asan_strcspn(const char* str, const char* control) {
39 m : return ::strcspn(str, control);
40 m : }
41 :
42 m : size_t asan_strlen(const char* str) {
43 m : return ::strlen(str);
44 m : }
45 :
46 m : const char* asan_strrchr(const char* str, int ch) {
47 m : return ::strrchr(str, ch);
48 m : }
49 :
50 m : wchar_t* asan_wcsrchr(wchar_t* str, wchar_t ch) {
51 m : return ::wcsrchr(str, ch);
52 m : }
53 :
54 m : wchar_t* asan_wcschr(wchar_t* str, wchar_t ch) {
55 m : return ::wcschr(str, ch);
56 m : }
57 :
58 m : int asan_strcmp(const char* str1, const char* str2) {
59 m : return ::strcmp(str1, str2);
60 m : }
61 :
62 m : const char* asan_strpbrk(const char* str, const char* control) {
63 m : return ::strpbrk(str, control);
64 m : }
65 :
66 m : const char* asan_strstr(const char* str, const char* substr) {
67 m : return ::strstr(str, substr);
68 m : }
69 :
70 m : const wchar_t* asan_wcsstr(const wchar_t* str, const wchar_t* substr) {
71 m : return ::wcsstr(str, substr);
72 m : }
73 :
74 m : size_t asan_strspn(const char* str, const char* control) {
75 m : return ::strspn(str, control);
76 m : }
77 :
78 m : char* asan_strncpy(char* dst, const char* src, size_t count) {
79 m : return ::strncpy(dst, src, count);
80 m : }
81 :
82 m : char* asan_strncat(char* dst, char* src, size_t count) {
83 m : return ::strncat(dst, src, count);
84 m : }
85 :
86 m : } // extern "C"
|