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