From 9f6be9e8aa049ed823497ac1339ddfbd404effd7 Mon Sep 17 00:00:00 2001 From: Nathan Bryant Date: Wed, 17 Oct 2001 20:41:08 +0000 Subject: [PATCH] - declare *printf format specifiers if gcc detected - format string fixes (compiles w/o warnings on alpha osf/1) --- citadel/ChangeLog | 5 ++++- citadel/citserver.c | 4 ++-- citadel/commands.h | 5 +++++ citadel/control.c | 2 +- citadel/file_ops.c | 2 +- citadel/imap_tools.c | 2 +- citadel/internet_addressing.c | 8 ++++---- citadel/mime_parser.c | 2 +- citadel/msgbase.c | 10 +++++----- citadel/serv_bio.c | 2 +- citadel/serv_chat.c | 4 ++-- citadel/serv_expire.c | 2 +- citadel/serv_network.c | 4 ++-- citadel/serv_pas2.c | 2 +- citadel/serv_pop3.c | 8 ++++---- citadel/serv_smtp.c | 4 ++-- citadel/serv_vandelay.c | 10 +++++----- citadel/snprintf.h | 7 +++++++ citadel/sysdep_decls.h | 8 +++++++- citadel/user_ops.c | 8 ++++---- 20 files changed, 60 insertions(+), 39 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index f50f3c0f4..7ee100478 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,8 @@ $Log$ + Revision 580.65 2001/10/17 20:41:07 nbryant + - declare *printf format specifiers if gcc detected + - format string fixes (compiles w/o warnings on alpha osf/1) + Revision 580.64 2001/10/17 19:40:38 nbryant warning fixes and cleanups for 64-bit machines @@ -2824,4 +2828,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/citserver.c b/citadel/citserver.c index 3d83bfe8c..562cd8905 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -353,7 +353,7 @@ void cmd_time(void) tv = time(NULL); - cprintf("%d %ld\n", OK, tv); + cprintf("%d %ld\n", OK, (long)tv); } /* @@ -785,7 +785,7 @@ void generate_nonce(struct CitContext *con) { gettimeofday(&tv, NULL); memset(con->cs_nonce, NONCE_SIZE, 0); snprintf(con->cs_nonce, NONCE_SIZE, "<%d%ld@%s>", - rand(), tv.tv_usec, config.c_fqdn); + rand(), (long)tv.tv_usec, config.c_fqdn); } diff --git a/citadel/commands.h b/citadel/commands.h index 9a7067881..209dd06a6 100644 --- a/citadel/commands.h +++ b/citadel/commands.h @@ -55,7 +55,12 @@ void async_ka_start(void); void async_ka_end(void); int checkpagin(int lp, int pagin, int height); char was_a_key_pressed(void); + +#ifdef __GNUC__ +void pprintf(const char *format, ...) __attribute__((__format__(__printf__,1,2))); +#else void pprintf(const char *format, ...); +#endif diff --git a/citadel/control.c b/citadel/control.c index c1a34fbc4..a60edf19c 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -178,7 +178,7 @@ void cmd_conf(char *argbuf) { cprintf("%d\n", config.c_roompurge); cprintf("%s\n", config.c_logpages); cprintf("%d\n", config.c_createax); - cprintf("%d\n", config.c_maxmsglen); + cprintf("%ld\n", config.c_maxmsglen); cprintf("%d\n", config.c_min_workers); cprintf("%d\n", config.c_max_workers); cprintf("%d\n", config.c_pop3_port); diff --git a/citadel/file_ops.c b/citadel/file_ops.c index 61ad702d2..b414dcb07 100644 --- a/citadel/file_ops.c +++ b/citadel/file_ops.c @@ -331,7 +331,7 @@ void OpenCmdResult(char *filename, char *mime_type) modtime = (time_t) statbuf.st_mtime; cprintf("%d %ld|%ld|%s|%s\n", - OK, filesize, modtime, filename, mime_type); + OK, filesize, (long)modtime, filename, mime_type); } diff --git a/citadel/imap_tools.c b/citadel/imap_tools.c index c205dbd35..4f9809879 100644 --- a/citadel/imap_tools.c +++ b/citadel/imap_tools.c @@ -41,7 +41,7 @@ void imap_strout(char *buf) } if (is_literal) { - cprintf("{%d}\r\n%s", strlen(buf), buf); + cprintf("{%ld}\r\n%s", strlen(buf), buf); } else { cprintf("\"%s\"", buf); } diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 678189bb1..f367cbf1b 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -422,7 +422,7 @@ int convert_field(struct CtdlMessage *msg, int beg, int end) { if (!strcasecmp(key, "Date")) { parsed_date = parsedate(value); if (parsed_date < 0L) parsed_date = time(NULL); - snprintf(buf, sizeof buf, "%ld", parsed_date ); + snprintf(buf, sizeof buf, "%ld", (long)parsed_date ); if (msg->cm_fields['T'] == NULL) msg->cm_fields['T'] = strdoop(buf); processed = 1; @@ -497,7 +497,7 @@ struct CtdlMessage *convert_internet_message(char *rfc822) { msg->cm_format_type = FMT_RFC822; /* internet message */ msg->cm_fields['M'] = rfc822; - lprintf(9, "Unconverted RFC822 message length = %d\n", strlen(rfc822)); + lprintf(9, "Unconverted RFC822 message length = %ld\n", strlen(rfc822)); pos = 0; done = 0; @@ -552,11 +552,11 @@ struct CtdlMessage *convert_internet_message(char *rfc822) { /* If there's no timestamp on this message, set it to now. */ if (msg->cm_fields['T'] == NULL) { - snprintf(buf, sizeof buf, "%ld", time(NULL)); + snprintf(buf, sizeof buf, "%ld", (long)time(NULL)); msg->cm_fields['T'] = strdoop(buf); } - lprintf(9, "RFC822 length remaining after conversion = %d\n", + lprintf(9, "RFC822 length remaining after conversion = %ld\n", strlen(rfc822)); return msg; } diff --git a/citadel/mime_parser.c b/citadel/mime_parser.c index 94a508cb3..fc8133df6 100644 --- a/citadel/mime_parser.c +++ b/citadel/mime_parser.c @@ -413,7 +413,7 @@ void the_mime_parser(char *partnum, /* Truncate if the header told us to */ if ( (content_length > 0) && (length > content_length) ) { length = content_length; - lprintf(9, "truncated to %d\n", content_length); + lprintf(9, "truncated to %ld\n", content_length); } mime_decode(partnum, diff --git a/citadel/msgbase.c b/citadel/msgbase.c index e5c1bcac0..ff346d3d7 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -679,7 +679,7 @@ void list_this_part(char *name, char *filename, char *partnum, char *disp, void *cbuserdata) { - cprintf("part=%s|%s|%s|%s|%s|%d\n", + cprintf("part=%s|%s|%s|%s|%s|%ld\n", name, filename, partnum, disp, cbtype, length); } @@ -907,7 +907,7 @@ void fixed_output(char *name, char *filename, char *partnum, char *disp, phree(ptr); } else if (strncasecmp(cbtype, "multipart/", 10)) { - cprintf("Part %s: %s (%s) (%d bytes)\r\n", + cprintf("Part %s: %s (%s) (%ld bytes)\r\n", partnum, filename, cbtype, length); } } @@ -1579,7 +1579,7 @@ void serialize_message(struct ser_ret *ret, /* return values */ ret->len = ret->len + strlen(msg->cm_fields[(int)forder[i]]) + 2; - lprintf(9, "serialize_message() calling malloc(%d)\n", ret->len); + lprintf(9, "serialize_message() calling malloc(%ld)\n", ret->len); ret->ser = mallok(ret->len); if (ret->ser == NULL) { ret->len = 0; @@ -1596,7 +1596,7 @@ void serialize_message(struct ser_ret *ret, /* return values */ strcpy(&ret->ser[wlen], msg->cm_fields[(int)forder[i]]); wlen = wlen + strlen(msg->cm_fields[(int)forder[i]]) + 1; } - if (ret->len != wlen) lprintf(3, "ERROR: len=%d wlen=%d\n", + if (ret->len != wlen) lprintf(3, "ERROR: len=%ld wlen=%ld\n", ret->len, wlen); return; @@ -2015,7 +2015,7 @@ char *CtdlReadMessageBody(char *terminator, /* token signalling EOT */ } else { buffer_len = (buffer_len * 2); m = ptr; - lprintf(9, "buffer_len is %d\n", buffer_len); + lprintf(9, "buffer_len is %ld\n", buffer_len); } } diff --git a/citadel/serv_bio.c b/citadel/serv_bio.c index 7915bbfb5..bb435d2e5 100644 --- a/citadel/serv_bio.c +++ b/citadel/serv_bio.c @@ -89,7 +89,7 @@ void cmd_rbio(char *cmdbuf) } sprintf(buf,"./bio/%ld",ruser.usernum); - cprintf("%d OK|%s|%ld|%d|%ld|%ld|%ld\n", LISTING_FOLLOWS, + cprintf("%d OK|%s|%ld|%d|%d|%ld|%ld\n", LISTING_FOLLOWS, ruser.fullname, ruser.usernum, ruser.axlevel, ruser.lastcall, ruser.timescalled, ruser.posted); fp = fopen(buf,"r"); diff --git a/citadel/serv_chat.c b/citadel/serv_chat.c index 4ac4ce50f..0ac6799e3 100644 --- a/citadel/serv_chat.c +++ b/citadel/serv_chat.c @@ -334,7 +334,7 @@ void cmd_chat(char *argbuf) if (strcasecmp(CC->curr_user, t_context->curr_user)) allwrite(strptr1, 2, t_context->curr_user); } else - cprintf(":|User not found.\n", cmdbuf); + cprintf(":|User not found.\n"); cprintf("\n"); } if ((cmdbuf[0] != '/') && (strlen(cmdbuf) > 0)) { @@ -447,7 +447,7 @@ void cmd_gexp(char *argbuf) { cprintf("%d %d|%ld|%d|%s|%s\n", LISTING_FOLLOWS, ((ptr->next != NULL) ? 1 : 0), /* more msgs? */ - ptr->timestamp, /* time sent */ + (long)ptr->timestamp, /* time sent */ ptr->flags, /* flags */ ptr->sender, /* sender of msg */ config.c_nodename); /* static for now */ diff --git a/citadel/serv_expire.c b/citadel/serv_expire.c index e153b99bf..cffe99032 100644 --- a/citadel/serv_expire.c +++ b/citadel/serv_expire.c @@ -283,7 +283,7 @@ void DoPurgeRooms(struct quickroom *qrbuf, void *data) { age = time(NULL) - (qrbuf->QRmtime); purge_secs = (time_t)config.c_roompurge * (time_t)86400; if (purge_secs <= (time_t)0) return; - lprintf(9, "<%s> is <%ld> seconds old\n", qrbuf->QRname, age); + lprintf(9, "<%s> is <%ld> seconds old\n", qrbuf->QRname, (long)age); if (age > purge_secs) do_purge = 1; } /* !QR_MAILBOX */ diff --git a/citadel/serv_network.c b/citadel/serv_network.c index 37feb4079..380974398 100644 --- a/citadel/serv_network.c +++ b/citadel/serv_network.c @@ -439,7 +439,7 @@ void network_spool_msg(long msgnum, void *userdata) { lprintf(9, "Generating delivery instructions\n"); instr = mallok(instr_len); if (instr == NULL) { - lprintf(1, "Cannot allocate %d bytes for instr...\n", + lprintf(1, "Cannot allocate %ld bytes for instr...\n", instr_len); abort(); } @@ -1369,7 +1369,7 @@ void cmd_netp(char *cmdbuf) } if (network_talking_to(node, NTT_CHECK)) { - cprintf("%d Already talking to %s right now\n", ERROR); + cprintf("%d Already talking to %s right now\n", ERROR, node); return; } diff --git a/citadel/serv_pas2.c b/citadel/serv_pas2.c index 8ed5dccd9..b988af94e 100644 --- a/citadel/serv_pas2.c +++ b/citadel/serv_pas2.c @@ -63,7 +63,7 @@ void cmd_pas2(char *argbuf) if (strlen(pw) != (MD5_HEXSTRING_SIZE-1)) { - cprintf("%d Auth string of length %d is the wrong length (should be %d).\n", ERROR, strlen(pw), MD5_HEXSTRING_SIZE-1); + cprintf("%d Auth string of length %ld is the wrong length (should be %d).\n", ERROR, strlen(pw), MD5_HEXSTRING_SIZE-1); return; } diff --git a/citadel/serv_pop3.c b/citadel/serv_pop3.c index 0906e8371..c143e0d09 100644 --- a/citadel/serv_pop3.c +++ b/citadel/serv_pop3.c @@ -100,7 +100,7 @@ void pop3_greeting(void) { POP3->num_msgs = 0; cprintf("+OK Citadel/UX POP3 server %s\r\n", - CC->cs_nonce, config.c_fqdn); + CC->cs_nonce); } @@ -294,7 +294,7 @@ void pop3_list(char *argbuf) { return; } else { - cprintf("+OK %d %d\r\n", + cprintf("+OK %d %ld\r\n", which_one, POP3->msgs[which_one-1].rfc822_length ); @@ -307,7 +307,7 @@ void pop3_list(char *argbuf) { cprintf("+OK Here's your mail:\r\n"); if (POP3->num_msgs > 0) for (i=0; inum_msgs; ++i) { if (! POP3->msgs[i].deleted) { - cprintf("%d %d\r\n", + cprintf("%d %ld\r\n", i+1, POP3->msgs[i].rfc822_length); } @@ -332,7 +332,7 @@ void pop3_stat(char *argbuf) { } } - cprintf("+OK %d %d\r\n", total_msgs, total_octets); + cprintf("+OK %d %ld\r\n", total_msgs, total_octets); } diff --git a/citadel/serv_smtp.c b/citadel/serv_smtp.c index 2d3ef0ceb..53a54881b 100644 --- a/citadel/serv_smtp.c +++ b/citadel/serv_smtp.c @@ -558,7 +558,7 @@ int smtp_message_delivery(struct CtdlMessage *msg) { snprintf(instr, 1024, "Content-type: %s\n\nmsgid|%ld\nsubmitted|%ld\n" "bounceto|%s\n", - SPOOLMIME, msgid, time(NULL), + SPOOLMIME, msgid, (long)time(NULL), SMTP->from ); for (i=0; inumber_of_recipients; ++i) { @@ -1427,7 +1427,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) { "Content-type: %s\n\n%s\n" "attempted|%ld\n" "retry|%ld\n", - SPOOLMIME, instr, time(NULL), retry ); + SPOOLMIME, instr, (long)time(NULL), (long)retry ); phree(instr); CtdlSaveMsg(msg, "", SMTP_SPOOLOUT_ROOM, MES_LOCAL); CtdlFreeMessage(msg); diff --git a/citadel/serv_vandelay.c b/citadel/serv_vandelay.c index bd613e0c0..d364740cb 100644 --- a/citadel/serv_vandelay.c +++ b/citadel/serv_vandelay.c @@ -60,7 +60,7 @@ void artv_export_users_backend(struct usersupp *usbuf, void *data) { cprintf("%ld\n", usbuf->posted); cprintf("%d\n", usbuf->axlevel); cprintf("%ld\n", usbuf->usernum); - cprintf("%ld\n", usbuf->lastcall); + cprintf("%ld\n", (long)usbuf->lastcall); cprintf("%d\n", usbuf->USuserpurge); cprintf("%s\n", usbuf->fullname); cprintf("%d\n", usbuf->USscreenwidth); @@ -86,12 +86,12 @@ void artv_export_rooms_backend(struct quickroom *qrbuf, void *data) { cprintf("%s\n", qrbuf->QRpasswd); cprintf("%ld\n", qrbuf->QRroomaide); cprintf("%ld\n", qrbuf->QRhighest); - cprintf("%ld\n", qrbuf->QRgen); + cprintf("%ld\n", (long)qrbuf->QRgen); cprintf("%u\n", qrbuf->QRflags); cprintf("%s\n", qrbuf->QRdirname); cprintf("%ld\n", qrbuf->QRinfo); cprintf("%d\n", qrbuf->QRfloor); - cprintf("%ld\n", qrbuf->QRmtime); + cprintf("%ld\n", (long)qrbuf->QRmtime); cprintf("%d\n", qrbuf->QRep.expire_mode); cprintf("%d\n", qrbuf->QRep.expire_value); cprintf("%ld\n", qrbuf->QRnumber); @@ -238,7 +238,7 @@ void artv_export_messages(void) { } } fclose(artv_global_message_list); - lprintf(7, "Exported %ld messages.\n", count); + lprintf(7, "Exported %d messages.\n", count); } @@ -465,7 +465,7 @@ void artv_import_visit(void) { void artv_import_message(void) { struct SuppMsgInfo smi; long msgnum; - int msglen; + long msglen; FILE *fp; char buf[SIZ]; char tempfile[SIZ]; diff --git a/citadel/snprintf.h b/citadel/snprintf.h index 1a27cdf13..13c7c8e32 100644 --- a/citadel/snprintf.h +++ b/citadel/snprintf.h @@ -1,5 +1,12 @@ /* $Id$ */ #ifndef __DECC + +#ifdef __GNUC__ +int snprintf (char *buf, size_t max, const char *fmt, ...) __attribute__((__format__(__printf__,3,4))); +int vsnprintf (char *buf, size_t max, const char *fmt, va_list argp) __attribute__((__format__(__printf__,3,0))); +#else int snprintf (char *buf, size_t max, const char *fmt, ...); int vsnprintf (char *buf, size_t max, const char *fmt, va_list argp); #endif + +#endif diff --git a/citadel/sysdep_decls.h b/citadel/sysdep_decls.h index fc977fe04..2078182c0 100644 --- a/citadel/sysdep_decls.h +++ b/citadel/sysdep_decls.h @@ -4,7 +4,14 @@ #include "sysdep.h" #include "server.h" +#ifdef __GNUC__ +void lprintf (int loglevel, const char *format, ...) __attribute__((__format__(__printf__,2,3))); +void cprintf (const char *format, ...) __attribute__((__format__(__printf__,1,2))); +#else void lprintf (int loglevel, const char *format, ...); +void cprintf (const char *format, ...); +#endif + void init_sysdep (void); void begin_critical_section (int which_one); void end_critical_section (int which_one); @@ -14,7 +21,6 @@ struct CitContext *MyContext (void); struct CitContext *CreateNewContext (void); void InitMyContext (struct CitContext *con); void client_write (char *buf, int nbytes); -void cprintf (const char *format, ...); int client_read_to (char *buf, int bytes, int timeout); int client_read (char *buf, int bytes); int client_gets (char *buf); diff --git a/citadel/user_ops.c b/citadel/user_ops.c index cedb01e4a..1a07e6f02 100644 --- a/citadel/user_ops.c +++ b/citadel/user_ops.c @@ -410,7 +410,7 @@ void session_startup(void) void logged_in_response(void) { - cprintf("%d %s|%d|%d|%d|%u|%ld\n", + cprintf("%d %s|%d|%ld|%ld|%u|%ld\n", OK, CC->usersupp.fullname, CC->usersupp.axlevel, CC->usersupp.timescalled, CC->usersupp.posted, CC->usersupp.flags, @@ -750,7 +750,7 @@ void cmd_newu(char *cmdbuf) if ((!strcasecmp(username, "bbs")) || (!strcasecmp(username, "new")) || (!strcasecmp(username, "."))) { - cprintf("%d '%s' is an invalid login name.\n", ERROR); + cprintf("%d '%s' is an invalid login name.\n", ERROR, username); return; } if (a == ERROR + ALREADY_EXISTS) { @@ -1123,7 +1123,7 @@ void ListThisUser(struct usersupp *usbuf, void *data) if ((CC->usersupp.axlevel >= 6) || ((usbuf->flags & US_UNLISTED) == 0) || ((CC->internal_pgm))) { - cprintf("%s|%d|%ld|%ld|%d|%d|", + cprintf("%s|%d|%ld|%d|%ld|%ld|", usbuf->fullname, usbuf->axlevel, usbuf->usernum, @@ -1212,7 +1212,7 @@ void cmd_agup(char *cmdbuf) cprintf("%d No such user.\n", ERROR + NO_SUCH_USER); return; } - cprintf("%d %s|%s|%u|%d|%d|%d|%ld|%ld|%d\n", + cprintf("%d %s|%s|%u|%ld|%ld|%d|%ld|%d|%d\n", OK, usbuf.fullname, usbuf.password, -- 2.30.2