diff options
Diffstat (limited to 'third_party/git/banned.h')
-rw-r--r-- | third_party/git/banned.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/git/banned.h b/third_party/git/banned.h new file mode 100644 index 000000000000..60a18d44033b --- /dev/null +++ b/third_party/git/banned.h @@ -0,0 +1,32 @@ +#ifndef BANNED_H +#define BANNED_H + +/* + * This header lists functions that have been banned from our code base, + * because they're too easy to misuse (and even if used correctly, + * complicate audits). Including this header turns them into compile-time + * errors. + */ + +#define BANNED(func) sorry_##func##_is_a_banned_function + +#undef strcpy +#define strcpy(x,y) BANNED(strcpy) +#undef strcat +#define strcat(x,y) BANNED(strcat) +#undef strncpy +#define strncpy(x,y,n) BANNED(strncpy) +#undef strncat +#define strncat(x,y,n) BANNED(strncat) + +#undef sprintf +#undef vsprintf +#ifdef HAVE_VARIADIC_MACROS +#define sprintf(...) BANNED(sprintf) +#define vsprintf(...) BANNED(vsprintf) +#else +#define sprintf(buf,fmt,arg) BANNED(sprintf) +#define vsprintf(buf,fmt,arg) BANNED(vsprintf) +#endif + +#endif /* BANNED_H */ |