From e84beffb5dd127309eed272788f040f310e9acec Mon Sep 17 00:00:00 2001 From: deraadt <> Date: Thu, 24 Jul 2003 01:15:42 +0000 Subject: [PATCH] warn about unsafe APIs at link time. Conditional on libc/Makefile defining APIWARN; disabled by default. In use by many developers for quite some time, now they have a common knob to enable/disable this --- src/lib/libc/string/strcat.c | 11 +++++++---- src/lib/libc/string/strcpy.c | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lib/libc/string/strcat.c b/src/lib/libc/string/strcat.c index 05a517a3..885822ba 100644 --- a/src/lib/libc/string/strcat.c +++ b/src/lib/libc/string/strcat.c @@ -28,7 +28,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strcat.c,v 1.5 2003/06/02 20:18:38 millert Exp $"; +static char *rcsid = "$OpenBSD: strcat.c,v 1.6 2003/07/24 01:15:42 deraadt Exp $"; #endif /* LIBC_SCCS and not lint */ #ifndef _KERNEL @@ -37,10 +37,13 @@ static char *rcsid = "$OpenBSD: strcat.c,v 1.5 2003/06/02 20:18:38 millert Exp $ #include #endif +#if defined(APIWARN) +__warn_references(strcat, + "warning: strcat() is almost always misused, please use strlcat()"); +#endif + char * -strcat(s, append) - register char *s; - register const char *append; +strcat(char *s, const char *append) { char *save = s; diff --git a/src/lib/libc/string/strcpy.c b/src/lib/libc/string/strcpy.c index 229d6d03..e5c3d7dc 100644 --- a/src/lib/libc/string/strcpy.c +++ b/src/lib/libc/string/strcpy.c @@ -28,7 +28,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strcpy.c,v 1.5 2003/06/02 20:18:38 millert Exp $"; +static char *rcsid = "$OpenBSD: strcpy.c,v 1.6 2003/07/24 01:15:42 deraadt Exp $"; #endif /* LIBC_SCCS and not lint */ #ifndef _KERNEL @@ -37,10 +37,13 @@ static char *rcsid = "$OpenBSD: strcpy.c,v 1.5 2003/06/02 20:18:38 millert Exp $ #include #endif +#if defined(APIWARN) +__warn_references(strcpy, + "warning: strcpy() is almost always misused, please use strlcpy()"); +#endif + char * -strcpy(to, from) - register char *to; - register const char *from; +strcpy(char *to, const char *from) { char *save = to;