diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-04-25 23:36:24 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-04-25 23:36:24 +0000 |
commit | 70b504a538a28806b350b2f30df5263a55ade5cd (patch) | |
tree | 4c0576c52fea896eba46b5f19f79c6f3c78b7f4d | |
parent | a39e7a9e5e661e49f29789c30f4ce2ca8a007499 (diff) |
Be really sneaky and use GNU ld special stuff so that whenever folks
use the unsafe gets, they will get a warning from the linker. muahahaha.
This method will soon be applied to fork() w/o an mmu etc...
-Erik
-rw-r--r-- | include/features.h | 11 | ||||
-rw-r--r-- | libc/stdio/stdio.c | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/features.h b/include/features.h index 475d62a85..880cd36ef 100644 --- a/include/features.h +++ b/include/features.h @@ -90,5 +90,16 @@ #include <bits/uClibc_config.h> #undef __need_uClibc_config_h + +#if 1 /* This only works with GNU ld, but that is what we use 'round these parts */ +#define link_warning(symbol, msg) \ +asm (".section " ".gnu.warning." #symbol "\n\t.previous"); \ +static const char __evoke_link_warning_##symbol[] \ +__attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg; +#else +# define link_warning(symbol, msg) +#endif + + #endif diff --git a/libc/stdio/stdio.c b/libc/stdio/stdio.c index 954318d39..a7dd8a3ba 100644 --- a/libc/stdio/stdio.c +++ b/libc/stdio/stdio.c @@ -314,6 +314,7 @@ char *fgets(char *s, int count, FILE *fp) #endif #ifdef L_gets +link_warning (gets, "the `gets' function is dangerous and should not be used.") char *gets(char *str) /* This is an UNSAFE function! */ { /* |