From ddb34e00b3e76f3769293a76a8379f795c6c32f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 24 Apr 2005 19:43:06 +0000 Subject: [PATCH] include strlcpy and *printf and use them git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14930 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/com_err/Makefile.am | 13 ++++++++++++- lib/com_err/com_err.c | 7 +++---- lib/com_err/parse.y | 5 ++--- lib/com_err/roken_rename.h | 23 +++++++++++++++++++++++ 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/lib/com_err/Makefile.am b/lib/com_err/Makefile.am index 7e70e1882..1acf6a69d 100644 --- a/lib/com_err/Makefile.am +++ b/lib/com_err/Makefile.am @@ -2,6 +2,12 @@ include $(top_srcdir)/Makefile.am.common +if do_roken_rename +ES = snprintf.c strlcpy.c +endif + +AM_CPPFLAGS += $(ROKEN_RENAME) + YFLAGS = -d lib_LTLIBRARIES = libcom_err.la @@ -13,7 +19,7 @@ include_HEADERS = com_err.h com_right.h compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l -libcom_err_la_SOURCES = error.c com_err.c roken_rename.h +libcom_err_la_SOURCES = error.c com_err.c roken_rename.h $(ES) CLEANFILES = lex.c parse.c parse.h @@ -22,3 +28,8 @@ $(compile_et_OBJECTS): parse.h parse.c ## XXX broken automake 1.4s compile_et_LDADD = \ $(LIB_roken) \ $(LEXLIB) + +snprintf.c: + $(LN_S) $(srcdir)/../roken/snprintf.c . +strlcpy.c: + $(LN_S) $(srcdir)/../roken/strlcpy.c . diff --git a/lib/com_err/com_err.c b/lib/com_err/com_err.c index 8159c948b..3dec3b2ac 100644 --- a/lib/com_err/com_err.c +++ b/lib/com_err/com_err.c @@ -51,15 +51,14 @@ error_message (long code) const char *p = com_right(_et_list, code); if (p == NULL) { if (code < 0) - sprintf(msg, "Unknown error %ld", code); + snprintf(msg, sizeof(msg), "Unknown error %ld", code); else p = strerror(code); } if (p != NULL && *p != '\0') { - strncpy(msg, p, sizeof(msg) - 1); - msg[sizeof(msg) - 1] = 0; + strlcpy(msg, p, sizeof(msg)); } else - sprintf(msg, "Unknown error %ld", code); + snprintf(msg, sizeof(msg), "Unknown error %ld", code); return msg; } diff --git a/lib/com_err/parse.y b/lib/com_err/parse.y index e54cd9b1e..e026e3657 100644 --- a/lib/com_err/parse.y +++ b/lib/com_err/parse.y @@ -102,9 +102,8 @@ statement : INDEX NUMBER } | PREFIX STRING { - prefix = realloc(prefix, strlen($2) + 2); - strcpy(prefix, $2); - strcat(prefix, "_"); + free(prefix); + asprintf (&prefix, "%s_", $2); free($2); } | PREFIX diff --git a/lib/com_err/roken_rename.h b/lib/com_err/roken_rename.h index dc7a8509f..4fd060019 100644 --- a/lib/com_err/roken_rename.h +++ b/lib/com_err/roken_rename.h @@ -36,4 +36,27 @@ #ifndef __roken_rename_h__ #define __roken_rename_h__ +#ifndef HAVE_SNPRINTF +#define snprintf _com_err_snprintf +#endif +#ifndef HAVE_VSNPRINTF +#define vsnprintf _com_err_vsnprintf +#endif +#ifndef HAVE_ASPRINTF +#define asprintf _com_err_asprintf +#endif +#ifndef HAVE_ASNPRINTF +#define asnprintf _com_err_asnprintf +#endif +#ifndef HAVE_VASPRINTF +#define vasprintf _com_err_vasprintf +#endif +#ifndef HAVE_VASNPRINTF +#define vasnprintf _com_err_vasnprintf +#endif +#ifndef HAVE_STRLCPY +#define strlcpy _com_err_strlcpy +#endif + + #endif /* __roken_rename_h__ */