From f781bc87eeff269e5d570e0d9ecf14efac980cf4 Mon Sep 17 00:00:00 2001 From: Nathan Bryant Date: Mon, 11 Mar 2002 05:42:47 +0000 Subject: [PATCH] removed all references to sprintf from several files (not all files yet) and replace with snprintf --- citadel/ChangeLog | 5 ++++- citadel/citadel.c | 6 +++--- citadel/citmail.c | 6 +++--- citadel/citserver.c | 4 ++-- citadel/client_chat.c | 2 +- citadel/client_passwords.c | 12 ++++++------ citadel/database_sleepycat.c | 2 +- citadel/dynloader.c | 4 ++-- citadel/file_ops.c | 2 +- citadel/genstamp.c | 6 +++--- citadel/genstamp.h | 2 +- citadel/imap_fetch.c | 8 ++++---- citadel/imap_misc.c | 8 ++++++-- citadel/ipc_c_tcp.c | 2 +- citadel/locate_host.c | 4 ++-- citadel/locate_host.h | 2 +- citadel/md5.c | 4 ++-- citadel/md5.h | 2 +- citadel/messages.c | 31 ++++++++++++++++--------------- citadel/migratenet.c | 14 +++++++------- citadel/msgbase.c | 2 +- citadel/serv_pas2.c | 2 +- citadel/serv_pop3.c | 2 +- citadel/serv_smtp.c | 2 +- 24 files changed, 71 insertions(+), 63 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index 42fc5bae3..0521c4840 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,8 @@ $Log$ + Revision 590.137 2002/03/11 05:42:46 nbryant + removed all references to sprintf from several files (not all files yet) + and replace with snprintf + Revision 590.136 2002/03/11 04:16:20 nbryant warning fixes on sparc-sun-solaris2.8 with gcc 3.0.4, mostly for *printf format strings @@ -3424,4 +3428,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/citadel.c b/citadel/citadel.c index fc93f3e07..7f5b7dd43 100644 --- a/citadel/citadel.c +++ b/citadel/citadel.c @@ -1091,7 +1091,7 @@ GSTA: /* See if we have a username and password on disk */ serv_gets(aaa); if (nonce[0]) { - sprintf(aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring)); + snprintf(aaa, sizeof aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring, sizeof hexstring)); } else /* Else no APOP */ { @@ -1149,11 +1149,11 @@ GSTA: /* See if we have a username and password on disk */ if (nonce[0]) { - sprintf(aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring)); + snprintf(aaa, sizeof aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring, sizeof hexstring)); } else /* Else no APOP */ { - snprintf(aaa, sizeof(aaa)-1, "PASS %s", password); + snprintf(aaa, sizeof aaa, "PASS %s", password); } serv_puts(aaa); diff --git a/citadel/citmail.c b/citadel/citmail.c index 183d1544a..1c54a5d40 100644 --- a/citadel/citmail.c +++ b/citadel/citmail.c @@ -177,7 +177,7 @@ int main(int argc, char **argv) { fp = tmpfile(); if (fp == NULL) return(errno); - sprintf(fromline, "From: someone@somewhere.org"); + snprintf(fromline, sizeof fromline, "From: someone@somewhere.org"); while (fgets(buf, 1024, stdin) != NULL) { fprintf(fp, "%s", buf); if (!strncasecmp(buf, "From:", 5)) strcpy(fromline, buf); @@ -192,12 +192,12 @@ int main(int argc, char **argv) { serv_gets(buf); if (buf[0]!='2') cleanup(1); - sprintf(buf, "MAIL %s", fromline); + snprintf(buf, sizeof buf, "MAIL %s", fromline); serv_puts(buf); serv_gets(buf); if (buf[0]!='2') cleanup(1); - sprintf(buf, "RCPT To: %s", argv[1]); + snprintf(buf, sizeof buf, "RCPT To: %s", argv[1]); serv_puts(buf); serv_gets(buf); if (buf[0]!='2') cleanup(1); diff --git a/citadel/citserver.c b/citadel/citserver.c index 6244d1423..ddb966012 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -460,7 +460,7 @@ void cmd_iden(char *argbuf) if (do_lookup) { lprintf(9, "Looking up hostname '%s'\n", from_host); if ((addr.s_addr = inet_addr(from_host)) != -1) { - locate_host(CC->cs_host, &addr); + locate_host(CC->cs_host, sizeof CC->cs_host, &addr); } else { safestrncpy(CC->cs_host, from_host, sizeof CC->cs_host); @@ -829,7 +829,7 @@ void begin_session(struct CitContext *con) if (!CC->is_local_socket) { if (!getpeername(con->client_socket, (struct sockaddr *) &sin, &len)) - locate_host(con->cs_host, &sin.sin_addr); + locate_host(con->cs_host, sizeof con->cs_host, &sin.sin_addr); } else { strcpy(con->cs_host, ""); diff --git a/citadel/client_chat.c b/citadel/client_chat.c index 6d9261e32..482bcdc26 100644 --- a/citadel/client_chat.c +++ b/citadel/client_chat.c @@ -300,7 +300,7 @@ void quiet_mode(void) qstate = 1; else qstate = 0; - sprintf(buf, "DEXP %d", qstate); + snprintf(buf, sizeof buf, "DEXP %d", qstate); serv_puts(buf); serv_gets(buf); if (buf[0] != '2') { diff --git a/citadel/client_passwords.c b/citadel/client_passwords.c index 75076af09..3552c42ec 100644 --- a/citadel/client_passwords.c +++ b/citadel/client_passwords.c @@ -22,12 +22,12 @@ #define PWFILENAME "%s/.citadel.passwords" -void determine_pwfilename(char *pwfile) { +static void determine_pwfilename(char *pwfile, size_t n) { struct passwd *p; p = getpwuid(getuid()); if (p == NULL) strcpy(pwfile, ""); - sprintf(pwfile, PWFILENAME, p->pw_dir); + snprintf(pwfile, n, PWFILENAME, p->pw_dir); } @@ -50,7 +50,7 @@ void get_stored_password( strcpy(username, ""); strcpy(password, ""); - determine_pwfilename(pwfile); + determine_pwfilename(pwfile, sizeof pwfile); if (strlen(pwfile)==0) return; fp = fopen(pwfile, "r"); @@ -88,7 +88,7 @@ void set_stored_password( char buf64[SIZ]; char hostbuf[SIZ], portbuf[SIZ], ubuf[SIZ], pbuf[SIZ]; - determine_pwfilename(pwfile); + determine_pwfilename(pwfile, sizeof pwfile); if (strlen(pwfile)==0) return; oldfp = fopen(pwfile, "r"); @@ -105,14 +105,14 @@ void set_stored_password( if ( (strcasecmp(hostbuf, host)) || (strcasecmp(portbuf, port)) ) { - sprintf(buf, "%s|%s|%s|%s|", + snprintf(buf, sizeof buf, "%s|%s|%s|%s|", hostbuf, portbuf, ubuf, pbuf); encode_base64(buf64, buf); fprintf(fp, "%s\n", buf64); } } if (strlen(username) > 0) { - sprintf(buf, "%s|%s|%s|%s|", + snprintf(buf, sizeof buf, "%s|%s|%s|%s|", host, port, username, password); encode_base64(buf64, buf); fprintf(fp, "%s\n", buf64); diff --git a/citadel/database_sleepycat.c b/citadel/database_sleepycat.c index d98215036..07f16c4bb 100644 --- a/citadel/database_sleepycat.c +++ b/citadel/database_sleepycat.c @@ -319,7 +319,7 @@ void open_databases(void) /* Arbitrary names for our tables -- we reference them by * number, so we don't have string names for them. */ - sprintf(dbfilename, "cdb.%02x", i); + snprintf(dbfilename, sizeof dbfilename, "cdb.%02x", i); ret = dbp[i]->open(dbp[i], dbfilename, diff --git a/citadel/dynloader.c b/citadel/dynloader.c index 00bd8091a..c1e3c64b3 100644 --- a/citadel/dynloader.c +++ b/citadel/dynloader.c @@ -488,7 +488,7 @@ void CtdlRegisterServiceHook(int tcp_port, if (sockpath != NULL) { newfcn->msock = ig_uds_server(sockpath, config.c_maxsessions); - sprintf(message, "Unix domain socket '%s': ", sockpath); + snprintf(message, sizeof message, "Unix domain socket '%s': ", sockpath); } else if (tcp_port <= 0) { /* port -1 to disable */ lprintf(7, "Service has been manually disabled, skipping\n"); @@ -497,7 +497,7 @@ void CtdlRegisterServiceHook(int tcp_port, } else { newfcn->msock = ig_tcp_server(tcp_port, config.c_maxsessions); - sprintf(message, "TCP port %d: ", tcp_port); + snprintf(message, sizeof message, "TCP port %d: ", tcp_port); } if (newfcn->msock > 0) { diff --git a/citadel/file_ops.c b/citadel/file_ops.c index 1d1e8705d..f15360507 100644 --- a/citadel/file_ops.c +++ b/citadel/file_ops.c @@ -661,7 +661,7 @@ void cmd_ucls(char *cmd) } /* put together an upload notice */ - sprintf(upload_notice, + snprintf(upload_notice, sizeof upload_notice, "NEW UPLOAD: '%s'\n %s\n", CC->upl_file, CC->upl_comment); quickie_message(CC->curr_user, NULL, CC->quickroom.QRname, diff --git a/citadel/genstamp.c b/citadel/genstamp.c index cfbb8bbb6..737b3fa54 100644 --- a/citadel/genstamp.c +++ b/citadel/genstamp.c @@ -44,7 +44,7 @@ static char *weekdays[] = { * Supplied with a unix timestamp, generate an RFC822-compliant textual * time and date stamp. */ -void datestring(char *buf, time_t xtime, int which_format) { +void datestring(char *buf, size_t n, time_t xtime, int which_format) { struct tm *t; long offset; @@ -70,7 +70,7 @@ void datestring(char *buf, time_t xtime, int which_format) { switch(which_format) { case DATESTRING_RFC822: - sprintf(buf, "%s, %02d %s %04d %02d:%02d:%02d %c%04ld", + snprintf(buf, n, "%s, %02d %s %04d %02d:%02d:%02d %c%04ld", weekdays[t->tm_wday], t->tm_mday, months[t->tm_mon], @@ -83,7 +83,7 @@ void datestring(char *buf, time_t xtime, int which_format) { break; case DATESTRING_IMAP: - sprintf(buf, "%02d-%s-%04d %02d:%02d:%02d %c%04ld", + snprintf(buf, n, "%02d-%s-%04d %02d:%02d:%02d %c%04ld", t->tm_mday, months[t->tm_mon], t->tm_year + 1900, diff --git a/citadel/genstamp.h b/citadel/genstamp.h index ce8e0f9f6..58e32c78d 100644 --- a/citadel/genstamp.h +++ b/citadel/genstamp.h @@ -3,7 +3,7 @@ * */ -void datestring(char *buf, time_t xtime, int which_format); +void datestring(char *buf, size_t n, time_t xtime, int which_format); enum { DATESTRING_RFC822, diff --git a/citadel/imap_fetch.c b/citadel/imap_fetch.c index f1c3dac41..e4697c583 100644 --- a/citadel/imap_fetch.c +++ b/citadel/imap_fetch.c @@ -87,7 +87,7 @@ void imap_fetch_internaldate(struct CtdlMessage *msg) { msgdate = time(NULL); } - datestring(buf, msgdate, DATESTRING_IMAP); + datestring(buf, sizeof buf, msgdate, DATESTRING_IMAP); cprintf("INTERNALDATE \"%s\"", buf); } @@ -199,7 +199,7 @@ void imap_load_part(char *name, char *filename, char *partnum, char *disp, fwrite(content, length, 1, imfp->output_fp); } - sprintf(mbuf2, "%s.MIME", partnum); + snprintf(mbuf2, sizeof mbuf2, "%s.MIME", partnum); if (!strcasecmp(imfp->desired_section, mbuf2)) { fprintf(imfp->output_fp, "Content-type: %s", cbtype); @@ -280,7 +280,7 @@ void imap_fetch_envelope(long msgnum, struct CtdlMessage *msg) { else { msgdate = time(NULL); } - datestring(datestringbuf, msgdate, DATESTRING_IMAP); + datestring(datestringbuf, sizeof datestringbuf, msgdate, DATESTRING_IMAP); /* Now start spewing data fields. The order is important, as it is * defined by the protocol specification. Nonexistent fields must @@ -933,7 +933,7 @@ void imap_pick_range(char *supplied_range, int is_uid) { extract_token(lostr, setstr, 0, ':'); if (num_tokens(setstr, ':') >= 2) { extract_token(histr, setstr, 1, ':'); - if (!strcmp(histr, "*")) sprintf(histr, "%d", INT_MAX); + if (!strcmp(histr, "*")) snprintf(histr, sizeof histr, "%d", INT_MAX); } else { strcpy(histr, lostr); diff --git a/citadel/imap_misc.c b/citadel/imap_misc.c index 75e4b0d33..b5b42d60c 100644 --- a/citadel/imap_misc.c +++ b/citadel/imap_misc.c @@ -141,6 +141,7 @@ void imap_print_express_messages(void) { struct ExpressMessage *ptr, *holdptr; char *dumpomatic = NULL; int i; + size_t size, size2; if (CC->FirstExpressMessage == NULL) { return; @@ -151,7 +152,8 @@ void imap_print_express_messages(void) { end_critical_section(S_SESSION_TABLE); while (ptr != NULL) { - dumpomatic = mallok(strlen(ptr->text) + SIZ); + size = strlen(ptr->text) + SIZ; + dumpomatic = mallok(size); strcpy(dumpomatic, ""); if (ptr->flags && EM_BROADCAST) strcat(dumpomatic, "Broadcast message "); @@ -161,7 +163,9 @@ void imap_print_express_messages(void) { strcat(dumpomatic, "Please logoff now, as requested "); else strcat(dumpomatic, "Message "); - sprintf(&dumpomatic[strlen(dumpomatic)], + + size2 = strlen(dumpomatic); + snprintf(&dumpomatic[size2], size - size2, "from %s:\n", ptr->sender); if (ptr->text != NULL) strcat(dumpomatic, ptr->text); diff --git a/citadel/ipc_c_tcp.c b/citadel/ipc_c_tcp.c index f646a66f4..45775a8ca 100644 --- a/citadel/ipc_c_tcp.c +++ b/citadel/ipc_c_tcp.c @@ -294,7 +294,7 @@ void attach_to_server(int argc, char **argv, char *hostbuf, char *portbuf) /* If we're using a unix domain socket we can do a bunch of stuff */ if (!strcmp(cithost, UDS)) { - sprintf(sockpath, "citadel.socket"); + snprintf(sockpath, sizeof sockpath, "citadel.socket"); serv_sock = uds_connectsock(sockpath); if (hostbuf != NULL) strcpy(hostbuf, cithost); if (portbuf != NULL) strcpy(portbuf, sockpath); diff --git a/citadel/locate_host.c b/citadel/locate_host.c index 1ca321e33..f78786843 100644 --- a/citadel/locate_host.c +++ b/citadel/locate_host.c @@ -28,7 +28,7 @@ #include "config.h" #include "tools.h" -void locate_host(char *tbuf, const struct in_addr *addr) +void locate_host(char *tbuf, size_t n, const struct in_addr *addr) { struct hostent *ch; char *i; @@ -48,7 +48,7 @@ void locate_host(char *tbuf, const struct in_addr *addr) a2 = ((*i++) & 0xff); a3 = ((*i++) & 0xff); a4 = ((*i++) & 0xff); - sprintf(tbuf, "%d.%d.%d.%d", a1, a2, a3, a4); + snprintf(tbuf, n, "%d.%d.%d.%d", a1, a2, a3, a4); goto end; /* because we might need to end the critical section */ } diff --git a/citadel/locate_host.h b/citadel/locate_host.h index 69e343574..229805363 100644 --- a/citadel/locate_host.h +++ b/citadel/locate_host.h @@ -1,2 +1,2 @@ /* $Id$ */ -void locate_host(char *tbuf, const struct in_addr *addr); +void locate_host(char *tbuf, size_t n, const struct in_addr *addr); diff --git a/citadel/md5.c b/citadel/md5.c index 218989038..92196d377 100644 --- a/citadel/md5.c +++ b/citadel/md5.c @@ -336,7 +336,7 @@ void MD5Transform(cit_uint32_t buf[4], cit_uint32_t const in[16]) * md5 string */ -char *make_apop_string(char *realpass, char *nonce, char *buffer) +char *make_apop_string(char *realpass, char *nonce, char *buffer, size_t n) { struct MD5Context ctx; u_char rawdigest[MD5_DIGEST_LEN]; @@ -350,7 +350,7 @@ char *make_apop_string(char *realpass, char *nonce, char *buffer) MD5Final(rawdigest, &ctx); for (i=0; i 0) { - sprintf(&header[strlen(header)], + size_t tmp = strlen(header); + snprintf(&header[tmp], sizeof header - tmp, " to %s", recipient); } } @@ -944,7 +945,7 @@ int entmsg(int is_reply, /* nonzero if this was a eply command */ * First, check to see if we have permission to enter a message in * this room. The server will return an error code if we can't. */ - sprintf(cmd, "ENT0 0||0|%d", mode); + snprintf(cmd, sizeof cmd, "ENT0 0||0|%d", mode); serv_puts(cmd); serv_gets(cmd); @@ -1005,7 +1006,7 @@ int entmsg(int is_reply, /* nonzero if this was a eply command */ /* If it's mail, we've got to check the validity of the recipient... */ if (strlen(buf) > 0) { - sprintf(cmd, "ENT0 0|%s|%d|%d|%s", buf, b, mode, subject); + snprintf(cmd, sizeof cmd, "ENT0 0|%s|%d|%d|%s", buf, b, mode, subject); serv_puts(cmd); serv_gets(cmd); if (cmd[0] != '2') { @@ -1047,7 +1048,7 @@ int entmsg(int is_reply, /* nonzero if this was a eply command */ } /* Transmit message to the server */ - sprintf(cmd, "ENT0 1|%s|%d|%d|%s|", buf, b, mode, subject); + snprintf(cmd, sizeof cmd, "ENT0 1|%s|%d|%d|%s|", buf, b, mode, subject); serv_puts(cmd); serv_gets(cmd); if (cmd[0] != '4') { @@ -1165,7 +1166,7 @@ void list_urls() if ((i = num_urls) != 1) i = intprompt("Display which one", 1, 1, num_urls); - sprintf(cmd, rc_url_cmd, urls[i - 1]); + snprintf(cmd, sizeof cmd, rc_url_cmd, urls[i - 1]); system(cmd); scr_printf("\n"); } @@ -1211,7 +1212,7 @@ void readmsgs( strcat(cmd, "OLD"); break; case 3: - sprintf(&cmd[strlen(cmd)], "LAST|%d", q); + snprintf(&cmd[5], sizeof cmd - 5, "LAST|%d", q); break; } serv_puts(cmd); @@ -1468,7 +1469,7 @@ RMSGREAD: scr_flush(); newprompt("Enter target room: ", targ, ROOMNAMELEN - 1); if (strlen(targ) > 0) { - sprintf(cmd, "MOVE %ld|%s|%d", + snprintf(cmd, sizeof cmd, "MOVE %ld|%s|%d", msg_arr[a], targ, (e == 'c' ? 1 : 0)); serv_puts(cmd); @@ -1501,7 +1502,7 @@ RMSGREAD: scr_flush(); case 'd': scr_printf("*** Delete this message? "); if (yesno() == 1) { - sprintf(cmd, "DELE %ld", msg_arr[a]); + snprintf(cmd, sizeof cmd, "DELE %ld", msg_arr[a]); serv_puts(cmd); serv_gets(cmd); scr_printf("%s\n", &cmd[4]); @@ -1534,7 +1535,7 @@ RMSGREAD: scr_flush(); char buf[SIZ]; int founda = 0; - sprintf(buf, "MSG0 %ld|%d", msg_arr[finda], 1); /* read the header so we can get 'from=' */ + snprintf(buf, sizeof buf, "MSG0 %ld|%d", msg_arr[finda], 1); /* read the header so we can get 'from=' */ serv_puts(buf); serv_gets(buf); while (serv_gets(buf), strcmp(buf, "000")) @@ -1570,9 +1571,9 @@ void edit_system_message(char *which_message) char read_cmd[64]; char write_cmd[64]; - sprintf(desc, "system message '%s'", which_message); - sprintf(read_cmd, "MESG %s", which_message); - sprintf(write_cmd, "EMSG %s", which_message); + snprintf(desc, sizeof desc, "system message '%s'", which_message); + snprintf(read_cmd, sizeof read_cmd, "MESG %s", which_message); + snprintf(write_cmd, sizeof write_cmd, "EMSG %s", which_message); do_edit(desc, read_cmd, "NOOP", write_cmd); } diff --git a/citadel/migratenet.c b/citadel/migratenet.c index f940602e0..1ecf2c1e7 100644 --- a/citadel/migratenet.c +++ b/citadel/migratenet.c @@ -69,7 +69,7 @@ int main(int argc, char **argv) logoff(atoi(buf)); } - sprintf(buf, "IPGM %d", config.c_ipgm_secret); + snprintf(buf, sizeof buf, "IPGM %d", config.c_ipgm_secret); serv_puts(buf); serv_gets(buf); fprintf(stderr, "%s\n", &buf[4]); @@ -117,7 +117,7 @@ int main(int argc, char **argv) fprintf(nodefp, "%s|", buf); printf("Enter host name/IP : "); gets(buf); - if (buf[0] == 0) sprintf(buf, "%s.citadel.org", + if (buf[0] == 0) snprintf(buf, sizeof buf, "%s.citadel.org", d->d_name); fprintf(nodefp, "%s|", buf); printf("Enter port number : "); @@ -149,7 +149,7 @@ int main(int argc, char **argv) /* Set up the node table */ printf("Creating neighbor node table\n"); - sprintf(buf, "CONF putsys|%s", IGNETCFG); + snprintf(buf, sizeof buf, "CONF putsys|%s", IGNETCFG); serv_puts(buf); serv_gets(buf); if (buf[0] == '4') { @@ -170,7 +170,7 @@ int main(int argc, char **argv) /* Now go through the table looking for node names to enter */ - sprintf(buf, "cat %s |awk -F \"|\" '{ print $2 }' |sort -f |uniq -i", + snprintf(buf, sizeof buf, "cat %s |awk -F \"|\" '{ print $2 }' |sort -f |uniq -i", roomfilename); roomfp = popen(buf, "r"); if (roomfp == NULL) { @@ -195,7 +195,7 @@ int main(int argc, char **argv) while (mn != NULL) { printf("Room <%s>\n", mn->roomname); - sprintf(buf, "GOTO %s", mn->roomname); + snprintf(buf, sizeof buf, "GOTO %s", mn->roomname); serv_puts(buf); serv_gets(buf); printf("%s\n", &buf[4]); @@ -205,7 +205,7 @@ int main(int argc, char **argv) serv_gets(buf); if (buf[0] != '4') goto roomerror; - sprintf(buf, "lastsent|%ld", highest); + snprintf(buf, sizeof buf, "lastsent|%ld", highest); serv_puts(buf); roomfp = fopen(roomfilename, "r"); @@ -215,7 +215,7 @@ int main(int argc, char **argv) extract(node, buf, 0); extract(room, buf, 1); if (!strcasecmp(room, mn->roomname)) { - sprintf(buf, + snprintf(buf, sizeof buf, "ignet_push_share|%s", node); serv_puts(buf); } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 6cbec8fc4..0cd118843 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -1165,7 +1165,7 @@ int CtdlOutputPreLoadedMsg(struct CtdlMessage *TheMessage, else if (i == 'R') cprintf("To: %s%s", mptr, nl); else if (i == 'T') { - datestring(datestamp, atol(mptr), + datestring(datestamp, sizeof datestamp, atol(mptr), DATESTRING_RFC822 ); cprintf("Date: %s%s", datestamp, nl); } diff --git a/citadel/serv_pas2.c b/citadel/serv_pas2.c index 592f66199..f1b1dbf1e 100644 --- a/citadel/serv_pas2.c +++ b/citadel/serv_pas2.c @@ -67,7 +67,7 @@ void cmd_pas2(char *argbuf) return; } - make_apop_string(CC->usersupp.password, CC->cs_nonce, hexstring); + make_apop_string(CC->usersupp.password, CC->cs_nonce, hexstring, sizeof hexstring); if (!strcmp(hexstring, pw)) { diff --git a/citadel/serv_pop3.c b/citadel/serv_pop3.c index 8cd9d62a3..048459a27 100644 --- a/citadel/serv_pop3.c +++ b/citadel/serv_pop3.c @@ -238,7 +238,7 @@ void pop3_apop(char *argbuf) return; } - make_apop_string(CC->usersupp.password, CC->cs_nonce, realdigest); + make_apop_string(CC->usersupp.password, CC->cs_nonce, realdigest, sizeof realdigest); if (!strncasecmp(realdigest, userdigest, MD5_HEXSTRING_SIZE-1)) { do_login(); diff --git a/citadel/serv_smtp.c b/citadel/serv_smtp.c index ebbcd2b84..25082d77c 100644 --- a/citadel/serv_smtp.c +++ b/citadel/serv_smtp.c @@ -470,7 +470,7 @@ void smtp_data(void) { cprintf("354 Transmit message now; terminate with '.' by itself\r\n"); - datestring(nowstamp, time(NULL), DATESTRING_RFC822); + datestring(nowstamp, sizeof nowstamp, time(NULL), DATESTRING_RFC822); body = mallok(4096); /* FIXME -- 2.30.2