From 9e0b696db6e8f045136988a7139918842616f8b5 Mon Sep 17 00:00:00 2001 From: Nathan Bryant Date: Tue, 12 Mar 2002 03:09:11 +0000 Subject: [PATCH] sprintf bashing --- citadel/messages.c | 4 ++-- citadel/msgbase.c | 4 ++-- citadel/room_ops.c | 5 +++-- citadel/serv_chat.c | 1 + citadel/serv_ical.c | 2 +- citadel/serv_imap.c | 6 ++++-- citadel/serv_vcard.c | 5 +++-- citadel/tools.c | 8 ++++---- citadel/tools.h | 2 +- citadel/user_ops.c | 10 +++++----- citadel/user_ops.h | 3 ++- citadel/userlist.c | 2 +- 12 files changed, 29 insertions(+), 23 deletions(-) diff --git a/citadel/messages.c b/citadel/messages.c index 1a4e6308b..707b9dc3d 100644 --- a/citadel/messages.c +++ b/citadel/messages.c @@ -515,7 +515,7 @@ int read_message( } } else if (!strncasecmp(buf, "time=", 5)) { - fmt_date(now, atol(&buf[5]), 0); + fmt_date(now, sizeof now, atol(&buf[5]), 0); if (dest) { fprintf(dest, "%s ", now); } else { @@ -689,7 +689,7 @@ int client_make_message(char *filename, /* temporary file name */ mode = 0; } - fmt_date(datestr, time(NULL), 0); + fmt_date(datestr, sizeof datestr, time(NULL), 0); header[0] = 0; if (room_flags & QR_ANONONLY && !recipient) { diff --git a/citadel/msgbase.c b/citadel/msgbase.c index edafb1a6d..e2735f1e0 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -1903,7 +1903,7 @@ long CtdlSubmitMsg(struct CtdlMessage *msg, /* message to save */ lprintf(9, "Delivering private local mail to <%s>\n", recipient); if (getuser(&userbuf, recipient) == 0) { - MailboxName(actual_rm, &userbuf, MAILROOM); + MailboxName(actual_rm, sizeof actual_rm, &userbuf, MAILROOM); CtdlSaveMsgPointerInRoom(actual_rm, newmsgid, 0); } else { @@ -2843,7 +2843,7 @@ void CtdlWriteObject(char *req_room, /* Room to stuff it in */ size_t len; if (is_mailbox != NULL) - MailboxName(roomname, is_mailbox, req_room); + MailboxName(roomname, sizeof roomname, is_mailbox, req_room); else safestrncpy(roomname, req_room, sizeof(roomname)); lprintf(9, "CtdlWriteObject() to <%s> (flags=%d)\n", roomname, flags); diff --git a/citadel/room_ops.c b/citadel/room_ops.c index ecaf8d84b..ba41b87bd 100644 --- a/citadel/room_ops.c +++ b/citadel/room_ops.c @@ -811,7 +811,8 @@ void cmd_goto(char *gargs) /* Then try a mailbox name match */ if (c != 0) { - MailboxName(augmented_roomname, &CC->usersupp, towhere); + MailboxName(augmented_roomname, sizeof augmented_roomname, + &CC->usersupp, towhere); c = getroom(&QRscratch, augmented_roomname); if (c == 0) strcpy(towhere, augmented_roomname); @@ -1344,7 +1345,7 @@ unsigned create_room(char *new_room_name, * name accordingly (prepend the user number) */ if (new_room_type == 4) { - MailboxName(qrbuf.QRname, &CC->usersupp, new_room_name); + MailboxName(qrbuf.QRname, sizeof qrbuf.QRname, &CC->usersupp, new_room_name); } else { safestrncpy(qrbuf.QRname, new_room_name, sizeof qrbuf.QRname); diff --git a/citadel/serv_chat.c b/citadel/serv_chat.c index 8c86c7177..ceec50f6e 100644 --- a/citadel/serv_chat.c +++ b/citadel/serv_chat.c @@ -558,6 +558,7 @@ int send_express_message(char *lun, char *x_user, char *x_msg) malloc(sizeof(struct savelist)); sptr->next = sl; MailboxName(sptr->roomname, + sizeof sptr->roomname, &ccptr->usersupp, PAGELOGROOM); sl = sptr; } diff --git a/citadel/serv_ical.c b/citadel/serv_ical.c index e65ceda79..cc3c96ab2 100644 --- a/citadel/serv_ical.c +++ b/citadel/serv_ical.c @@ -83,7 +83,7 @@ int ical_obj_beforesave(struct CtdlMessage *msg) */ /* First determine if this is our room */ - MailboxName(roomname, &CC->usersupp, USERCALENDARROOM); + MailboxName(roomname, sizeof roomname, &CC->usersupp, USERCALENDARROOM); if (strncmp(roomname, msg->cm_fields['O'], ROOMNAMELEN)) return 0; /* It's not us... */ diff --git a/citadel/serv_imap.c b/citadel/serv_imap.c index b3804ffbe..87d58d965 100644 --- a/citadel/serv_imap.c +++ b/citadel/serv_imap.c @@ -382,7 +382,8 @@ void imap_select(int num_parms, char *parms[]) { /* Then try a mailbox name match */ if (c != 0) { - MailboxName(augmented_roomname, &CC->usersupp, towhere); + MailboxName(augmented_roomname, sizeof augmented_roomname, + &CC->usersupp, towhere); c = getroom(&QRscratch, augmented_roomname); if (c == 0) strcpy(towhere, augmented_roomname); @@ -671,7 +672,8 @@ int imap_grabroom(char *returned_roomname, char *foldername) { /* Then try a mailbox name match */ if (c != 0) { - MailboxName(augmented_roomname, &CC->usersupp, roomname); + MailboxName(augmented_roomname, sizeof augmented_roomname, + &CC->usersupp, roomname); c = getroom(&QRscratch, augmented_roomname); if (c == 0) strcpy(roomname, augmented_roomname); diff --git a/citadel/serv_vcard.c b/citadel/serv_vcard.c index c952f5d72..9e30a7492 100644 --- a/citadel/serv_vcard.c +++ b/citadel/serv_vcard.c @@ -280,7 +280,8 @@ int vcard_upload_beforesave(struct CtdlMessage *msg) { * to make changes to another user's vCard instead of * assuming that it's always the user saving his own. */ - MailboxName(config_rm, &CC->usersupp, USERCONFIGROOM); + MailboxName(config_rm, sizeof config_rm, + &CC->usersupp, USERCONFIGROOM); CtdlDeleteMessages(config_rm, 0L, "text/x-vcard"); /* Set the Extended-ID to a standardized one so the @@ -385,7 +386,7 @@ struct vCard *vcard_get_user(struct usersupp *u) { struct vCard *v; strcpy(hold_rm, CC->quickroom.QRname); /* save current room */ - MailboxName(config_rm, u, USERCONFIGROOM); + MailboxName(config_rm, sizeof config_rm, u, USERCONFIGROOM); if (getroom(&CC->quickroom, config_rm) != 0) { getroom(&CC->quickroom, hold_rm); diff --git a/citadel/tools.c b/citadel/tools.c index 493e90b2e..2c21bfe7a 100644 --- a/citadel/tools.c +++ b/citadel/tools.c @@ -393,7 +393,7 @@ int collapsed_strcmp(char *s1, char *s2) { * Format a date/time stamp for output * seconds is whether to print the seconds */ -void fmt_date(char *buf, time_t thetime, int seconds) { +void fmt_date(char *buf, size_t n, time_t thetime, int seconds) { struct tm *tm; int hour; @@ -410,7 +410,7 @@ void fmt_date(char *buf, time_t thetime, int seconds) { else if (hour > 12) hour = hour - 12; if (seconds) { - sprintf(buf, "%s %d %4d %d:%02d:%02d%s", + snprintf(buf, n, "%s %d %4d %d:%02d:%02d%s", ascmonths[tm->tm_mon], tm->tm_mday, tm->tm_year + 1900, @@ -420,7 +420,7 @@ void fmt_date(char *buf, time_t thetime, int seconds) { ( (tm->tm_hour >= 12) ? "pm" : "am" ) ); } else { - sprintf(buf, "%s %d %4d %d:%02d%s", + snprintf(buf, n, "%s %d %4d %d:%02d%s", ascmonths[tm->tm_mon], tm->tm_mday, tm->tm_year + 1900, @@ -454,7 +454,7 @@ int is_msg_in_mset(char *mset, long msgnum) { if (num_tokens(setstr, ':') >= 2) { extract_token(histr, setstr, 1, ':'); if (!strcmp(histr, "*")) { - sprintf(histr, "%ld", LONG_MAX); + snprintf(histr, sizeof histr, "%ld", LONG_MAX); } } else { diff --git a/citadel/tools.h b/citadel/tools.h index 57d03d89c..e168a96ed 100644 --- a/citadel/tools.h +++ b/citadel/tools.h @@ -10,7 +10,7 @@ void striplt(char *); int haschar(const char *st, int ch); int collapsed_strcmp(char *s1, char *s2); void remove_token(char *source, int parmnum, char separator); -void fmt_date(char *buf, time_t thetime, int seconds); +void fmt_date(char *buf, size_t n, time_t thetime, int seconds); int is_msg_in_mset(char *mset, long msgnum); char *memreadline(char *start, char *buf, int maxlen); diff --git a/citadel/user_ops.c b/citadel/user_ops.c index 836fce4fc..862ad30bd 100644 --- a/citadel/user_ops.c +++ b/citadel/user_ops.c @@ -232,14 +232,14 @@ void CtdlGetRelationship(struct visit *vbuf, /* Set v_seen if necessary */ if (vbuf->v_seen[0] == 0) { - sprintf(vbuf->v_seen, "*:%ld", vbuf->v_lastseen); + snprintf(vbuf->v_seen, sizeof vbuf->v_seen, "*:%ld", vbuf->v_lastseen); } } -void MailboxName(char *buf, struct usersupp *who, char *prefix) +void MailboxName(char *buf, size_t n, const struct usersupp *who, const char *prefix) { - sprintf(buf, "%010ld.%s", who->usernum, prefix); + snprintf(buf, n, "%010ld.%s", who->usernum, prefix); } @@ -729,7 +729,7 @@ int create_user(char *newusername, int become_user) putuser(&usbuf); /* give the user a private mailbox */ - MailboxName(mailboxname, &usbuf, MAILROOM); + MailboxName(mailboxname, sizeof mailboxname, &usbuf, MAILROOM); create_room(mailboxname, 5, "", 0, 1); /*** Everything below this line can be bypassed if we are administratively @@ -1379,7 +1379,7 @@ int NewMailCount() long *msglist = NULL; int num_msgs = 0; - MailboxName(mailboxname, &CC->usersupp, MAILROOM); + MailboxName(mailboxname, sizeof mailboxname, &CC->usersupp, MAILROOM); if (getroom(&mailbox, mailboxname) != 0) return (0); CtdlGetRelationship(&vbuf, &CC->usersupp, &mailbox); diff --git a/citadel/user_ops.h b/citadel/user_ops.h index e8e1338b7..ad9fdc4b1 100644 --- a/citadel/user_ops.h +++ b/citadel/user_ops.h @@ -40,7 +40,8 @@ void CtdlGetRelationship(struct visit *vbuf, void CtdlSetRelationship(struct visit *newvisit, struct usersupp *rel_user, struct quickroom *rel_room); -void MailboxName(char *buf, struct usersupp *who, char *prefix); +void MailboxName(char *buf, size_t n, const struct usersupp *who, + const char *prefix); int GenerateRelationshipIndex( char *IndexBuf, long RoomID, long RoomGen, diff --git a/citadel/userlist.c b/citadel/userlist.c index bd59f04a5..2570a7df1 100644 --- a/citadel/userlist.c +++ b/citadel/userlist.c @@ -91,7 +91,7 @@ char *strerror(int e) { static char buf[32]; - sprintf(buf,"errno = %d",e); + snprintf(buf, sizeof buf, "errno = %d",e); return(buf); } #endif -- 2.39.2