summaryrefslogtreecommitdiffstats
path: root/src/appl/telnet
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-06-29 01:01:24 +0000
committerKen Raeburn <raeburn@mit.edu>2007-06-29 01:01:24 +0000
commitf8369e867bcb6ff44d2ee12fc79070b869d41abd (patch)
tree93742abe35959d7f3897d6f3b43ca37921d59a82 /src/appl/telnet
parent0708ecde434afdabb8412d6af61a0c717af56abb (diff)
downloadkrb5-f8369e867bcb6ff44d2ee12fc79070b869d41abd.tar.gz
krb5-f8369e867bcb6ff44d2ee12fc79070b869d41abd.tar.xz
krb5-f8369e867bcb6ff44d2ee12fc79070b869d41abd.zip
Attach format attributes to declarations of various message-formatting
routines under gcc. In a couple of routines, hard-code the preference for using the vsnprintf paths instead of list-of-int-arguments hacks now that we're assuming vsnprintf is available in other places. Installed headers affected: com_err.h (com_err, com_err_va) ss.h (ss_error) krb5.h (krb5_set_error_message, krb5_vset_error_message) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19653 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/telnet')
-rw-r--r--src/appl/telnet/telnetd/ext.h18
-rw-r--r--src/appl/telnet/telnetd/utility.c11
2 files changed, 22 insertions, 7 deletions
diff --git a/src/appl/telnet/telnetd/ext.h b/src/appl/telnet/telnetd/ext.h
index 5d4f8e1598..3a0d103205 100644
--- a/src/appl/telnet/telnetd/ext.h
+++ b/src/appl/telnet/telnetd/ext.h
@@ -184,9 +184,21 @@ extern void
willoption (int),
wontoption (int);
-extern void netprintf (const char *, ...);
-extern void netprintf_urg (const char *fmt, ...);
-extern void netprintf_noflush (const char *fmt, ...);
+extern void netprintf (const char *, ...)
+#if !defined(__cplusplus) && (__GNUC__ > 2)
+ __attribute__((__format__(__printf__, 1, 2)))
+#endif
+ ;
+extern void netprintf_urg (const char *fmt, ...)
+#if !defined(__cplusplus) && (__GNUC__ > 2)
+ __attribute__((__format__(__printf__, 1, 2)))
+#endif
+ ;
+extern void netprintf_noflush (const char *fmt, ...)
+#if !defined(__cplusplus) && (__GNUC__ > 2)
+ __attribute__((__format__(__printf__, 1, 2)))
+#endif
+ ;
extern int netwrite (const unsigned char *, size_t);
extern void netputs (const char *);
diff --git a/src/appl/telnet/telnetd/utility.c b/src/appl/telnet/telnetd/utility.c
index f4568ec289..a091d08942 100644
--- a/src/appl/telnet/telnetd/utility.c
+++ b/src/appl/telnet/telnetd/utility.c
@@ -393,6 +393,13 @@ netflush()
*/
static void
netprintf_ext(int noflush, int seturg, const char *fmt, va_list args)
+#if !defined(__cplusplus) && (__GNUC__ > 2)
+ __attribute__((__format__(__printf__, 3, 0)))
+#endif
+ ;
+
+static void
+netprintf_ext(int noflush, int seturg, const char *fmt, va_list args)
{
size_t remain;
size_t maxoutlen;
@@ -412,11 +419,7 @@ netprintf_ext(int noflush, int seturg, const char *fmt, va_list args)
if (maxoutlen >= sizeof(buf))
return; /* highly unlikely */
-#ifdef HAVE_VSNPRINTF
len = vsnprintf(buf, sizeof(buf), fmt, args);
-#else
- len = vsprintf(buf, fmt, args); /* XXX need to fix for SunOS? */
-#endif
/*
* The return value from sprintf()-like functions may be the