📄 chk.h
字号:
#ifndef os# define os(ptr) __builtin_object_size (ptr, 0)#endif/* This is one of the alternatives for object size checking. If dst has side-effects, size checking will never be done. */#undef memcpy#define memcpy(dst, src, len) \ __builtin___memcpy_chk (dst, src, len, os (dst))#undef mempcpy#define mempcpy(dst, src, len) \ __builtin___mempcpy_chk (dst, src, len, os (dst))#undef memmove#define memmove(dst, src, len) \ __builtin___memmove_chk (dst, src, len, os (dst))#undef memset#define memset(dst, val, len) \ __builtin___memset_chk (dst, val, len, os (dst))#undef strcpy#define strcpy(dst, src) \ __builtin___strcpy_chk (dst, src, os (dst))#undef stpcpy#define stpcpy(dst, src) \ __builtin___stpcpy_chk (dst, src, os (dst))#undef strcat#define strcat(dst, src) \ __builtin___strcat_chk (dst, src, os (dst))#undef strncpy#define strncpy(dst, src, len) \ __builtin___strncpy_chk (dst, src, len, os (dst))#undef strncat#define strncat(dst, src, len) \ __builtin___strncat_chk (dst, src, len, os (dst))#undef sprintf#define sprintf(dst, ...) \ __builtin___sprintf_chk (dst, 0, os (dst), __VA_ARGS__)#undef vsprintf#define vsprintf(dst, fmt, ap) \ __builtin___vsprintf_chk (dst, 0, os (dst), fmt, ap)#undef snprintf#define snprintf(dst, len, ...) \ __builtin___snprintf_chk (dst, len, 0, os (dst), __VA_ARGS__)#undef vsnprintf#define vsnprintf(dst, len, fmt, ap) \ __builtin___vsnprintf_chk (dst, len, 0, os (dst), fmt, ap)/* Now "redefine" even builtins for the purpose of testing. */#undef __builtin_memcpy#define __builtin_memcpy(dst, src, len) memcpy (dst, src, len)#undef __builtin_mempcpy#define __builtin_mempcpy(dst, src, len) mempcpy (dst, src, len)#undef __builtin_memmove#define __builtin_memmove(dst, src, len) memmove (dst, src, len)#undef __builtin_memset#define __builtin_memset(dst, val, len) memset (dst, val, len)#undef __builtin_strcpy#define __builtin_strcpy(dst, src) strcpy (dst, src)#undef __builtin_stpcpy#define __builtin_stpcpy(dst, src) stpcpy (dst, src)#undef __builtin_strcat#define __builtin_strcat(dst, src) strcat (dst, src)#undef __builtin_strncpy#define __builtin_strncpy(dst, src, len) strncpy (dst, src, len)#undef __builtin_strncat#define __builtin_strncat(dst, src, len) strncat (dst, src, len)#undef __builtin_sprintf#define __builtin_sprintf(dst, ...) sprintf (dst, __VA_ARGS__)#undef __builtin_vsprintf#define __builtin_vsprintf(dst, fmt, ap) vsprintf (dst, fmt, ap)#undef __builtin_snprintf#define __builtin_snprintf(dst, len, ...) snprintf (dst, len, __VA_ARGS__)#undef __builtin_vsnprintf#define __builtin_vsnprintf(dst, len, fmt, ap) vsnprintf (dst, len, fmt, ap)extern void *chk_fail_buf[];extern volatile int chk_fail_allowed, chk_calls;extern volatile int memcpy_disallowed, mempcpy_disallowed, memmove_disallowed;extern volatile int memset_disallowed, strcpy_disallowed, stpcpy_disallowed;extern volatile int strncpy_disallowed, strcat_disallowed, strncat_disallowed;extern volatile int sprintf_disallowed, vsprintf_disallowed;extern volatile int snprintf_disallowed, vsnprintf_disallowed;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -