1*5ef59e75Smrg /* bridge.cc -- extern "C" wrappers around sanitizer_common APIs.
2*5ef59e75Smrg    Copyright (C) 2013 Free Software Foundation, Inc.
3*5ef59e75Smrg    Written by Jakub Jelinek, Red Hat, Inc.
4*5ef59e75Smrg 
5*5ef59e75Smrg Redistribution and use in source and binary forms, with or without
6*5ef59e75Smrg modification, are permitted provided that the following conditions are
7*5ef59e75Smrg met:
8*5ef59e75Smrg 
9*5ef59e75Smrg     (1) Redistributions of source code must retain the above copyright
10*5ef59e75Smrg     notice, this list of conditions and the following disclaimer.
11*5ef59e75Smrg 
12*5ef59e75Smrg     (2) Redistributions in binary form must reproduce the above copyright
13*5ef59e75Smrg     notice, this list of conditions and the following disclaimer in
14*5ef59e75Smrg     the documentation and/or other materials provided with the
15*5ef59e75Smrg     distribution.
16*5ef59e75Smrg 
17*5ef59e75Smrg     (3) The name of the author may not be used to
18*5ef59e75Smrg     endorse or promote products derived from this software without
19*5ef59e75Smrg     specific prior written permission.
20*5ef59e75Smrg 
21*5ef59e75Smrg THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22*5ef59e75Smrg IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23*5ef59e75Smrg WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24*5ef59e75Smrg DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
25*5ef59e75Smrg INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26*5ef59e75Smrg (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27*5ef59e75Smrg SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28*5ef59e75Smrg HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29*5ef59e75Smrg STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30*5ef59e75Smrg IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31*5ef59e75Smrg POSSIBILITY OF SUCH DAMAGE.  */
32*5ef59e75Smrg 
33*5ef59e75Smrg #include "config.h"
34*5ef59e75Smrg 
35*5ef59e75Smrg #include <string.h>
36*5ef59e75Smrg 
37*5ef59e75Smrg #include "sanitizer_common/sanitizer_allocator_internal.h"
38*5ef59e75Smrg 
39*5ef59e75Smrg extern "C"
40*5ef59e75Smrg {
41*5ef59e75Smrg 
42*5ef59e75Smrg void *
__asan_internal_memcpy(void * dest,const void * src,size_t n)43*5ef59e75Smrg __asan_internal_memcpy (void *dest, const void *src, size_t n)
44*5ef59e75Smrg {
45*5ef59e75Smrg   return __sanitizer::internal_memcpy (dest, src, n);
46*5ef59e75Smrg }
47*5ef59e75Smrg 
48*5ef59e75Smrg void *
__asan_internal_memset(void * dest,int c,size_t n)49*5ef59e75Smrg __asan_internal_memset (void *dest, int c, size_t n)
50*5ef59e75Smrg {
51*5ef59e75Smrg   return __sanitizer::internal_memset (dest, c, n);
52*5ef59e75Smrg }
53*5ef59e75Smrg 
54*5ef59e75Smrg int
__asan_internal_memcmp(const void * s1,const void * s2,size_t n)55*5ef59e75Smrg __asan_internal_memcmp (const void *s1, const void *s2, size_t n)
56*5ef59e75Smrg {
57*5ef59e75Smrg   return __sanitizer::internal_memcmp (s1, s2, n);
58*5ef59e75Smrg }
59*5ef59e75Smrg 
60*5ef59e75Smrg int
__asan_internal_strcmp(const char * s1,const char * s2)61*5ef59e75Smrg __asan_internal_strcmp (const char *s1, const char *s2)
62*5ef59e75Smrg {
63*5ef59e75Smrg   return __sanitizer::internal_strcmp (s1, s2);
64*5ef59e75Smrg }
65*5ef59e75Smrg 
66*5ef59e75Smrg int
__asan_internal_strncmp(const char * s1,const char * s2,size_t n)67*5ef59e75Smrg __asan_internal_strncmp (const char *s1, const char *s2, size_t n)
68*5ef59e75Smrg {
69*5ef59e75Smrg   return __sanitizer::internal_strncmp (s1, s2, n);
70*5ef59e75Smrg }
71*5ef59e75Smrg 
72*5ef59e75Smrg size_t
__asan_internal_strlen(const char * str)73*5ef59e75Smrg __asan_internal_strlen (const char *str)
74*5ef59e75Smrg {
75*5ef59e75Smrg   return __sanitizer::internal_strlen (str);
76*5ef59e75Smrg }
77*5ef59e75Smrg 
78*5ef59e75Smrg size_t
__asan_internal_strnlen(const char * str,size_t n)79*5ef59e75Smrg __asan_internal_strnlen (const char *str, size_t n)
80*5ef59e75Smrg {
81*5ef59e75Smrg   return __sanitizer::internal_strnlen (str, n);
82*5ef59e75Smrg }
83*5ef59e75Smrg 
84*5ef59e75Smrg }
85