1#ifndef BANNED_H 2#define BANNED_H 3 4/* 5 * This header lists functions that have been banned from our code base, 6 * because they're too easy to misuse (and even if used correctly, 7 * complicate audits). Including this header turns them into compile-time 8 * errors. 9 */ 10 11#define BANNED(func) sorry_##func##_is_a_banned_function 12 13#undef strcpy 14#define strcpy(x,y) BANNED(strcpy) 15#undef strcat 16#define strcat(x,y) BANNED(strcat) 17 18#endif /* BANNED_H */