sanitizer_libc.cc revision 3836ff2733d40e1182e301ef7de3eff9469777ae
116e0075746b21ed866ec3be21ef0d1e46f0efed5Kostya Serebryany//===-- sanitizer_libc.cc ---------------------------------------*- C++ -*-===// 2b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// 3b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// The LLVM Compiler Infrastructure 4b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// 5b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// This file is distributed under the University of Illinois Open Source 6b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// License. See LICENSE.TXT for details. 7b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// 8b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany//===----------------------------------------------------------------------===// 9b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// 10b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany// This file is shared between AddressSanitizer and ThreadSanitizer 1116e0075746b21ed866ec3be21ef0d1e46f0efed5Kostya Serebryany// run-time libraries. See sanitizer_libc.h for details. 12b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany//===----------------------------------------------------------------------===// 133836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov#include "sanitizer_defs.h" 1416e0075746b21ed866ec3be21ef0d1e46f0efed5Kostya Serebryany#include "sanitizer_libc.h" 15b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany 16b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryanynamespace __sanitizer { 17b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany 18b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryanyvoid MiniLibcStub() { 19b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany} 20b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany 213836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonovchar *internal_strncpy(char *dst, const char *src, uptr n) { 223836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov uptr i; 233836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov for (i = 0; i < n && src[i]; i++) 243836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov dst[i] = src[i]; 253836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov for (; i < n; i++) 263836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov dst[i] = '\0'; 273836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov return dst; 283836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov} 293836ff2733d40e1182e301ef7de3eff9469777aeAlexey Samsonov 30b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany} // namespace __sanitizer 31