+1998-11-09 Nathan Bryant <bryant@cs.usm.maine.edu>
+ * client_chat.c: eliminate calls to sprintf()
+ * commands.h, routines.c, routines2.c: warning fix
+
Mon Nov 9 19:15:31 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* serv_upgrade.c: added all missing fields to export/import
* serv_expire.c: support per-user purge time when purging users
* useradmin.c: really removed (cvs remove)
* aidepost.c, citadel.c: convert all sprintf() calls to snprintf()
* sysdep.c: fix overrun in lprintf() described by dme/Dead Monkey
+ * citmail.c, citserver.c: convert all sprintf() call to snprintf()
Sun Nov 8 13:19:36 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* useradmin.c: removed
{
static char buf[32];
- sprintf(buf,"errno = %d",e);
+ snprintf(buf,sizeof buf,"errno = %d",e);
return(buf);
}
#endif
}
time(&now);
- sprintf(from, "postmaster@%s", config.c_nodename);
+ snprintf(from, sizeof from, "postmaster@%s", config.c_nodename);
- sprintf(buf, "./network/spoolin/citmail.%d", getpid());
+ snprintf(buf, sizeof buf, "./network/spoolin/citmail.%d", getpid());
temp = fopen(buf,"w");
putc(255,temp); putc(MES_NORMAL,temp); putc(1,temp);
static char buf[1024];
FILE *fp;
- sprintf(buf,"cd %s; uudecode",target);
+ snprintf(buf,sizeof buf,"cd %s; uudecode",target);
fp=popen(buf,"w");
if (fp==NULL) return;
/* Otherwise, we're dealing with Citadel mail. */
else {
- sprintf(recp, "%s!%s", node, user);
+ snprintf(recp, sizeof recp, "%s!%s", node, user);
deliver_to_ignet = 1;
printf("250 IGnet recipient.\n");
}
* back to an external mail transport agent such as sendmail.
*/
if (haschar(node, '.')) {
- sprintf(buf, SENDMAIL, recp);
+ snprintf(buf, sizeof buf, SENDMAIL, recp);
system(buf);
exit(0);
}
/* Otherwise, we're dealing with Citadel mail. */
else {
- sprintf(recp, "%s!%s", node, user);
+ snprintf(recp, sizeof recp, "%s!%s", node, user);
deliver_to_ignet = 1;
}
free(dirs[1]);
if (strlen(targ)==0) {
- sprintf(targ, "./help/%s", buf);
+ snprintf(targ, sizeof targ, "./help/%s", buf);
}
mfp = fopen(targ,"w");
strcpy(CC->cs_clientname, "(unknown)");
strcpy(CC->curr_user,"");
strcpy(CC->net_node,"");
- sprintf(CC->temp,"/tmp/CitServer.%d.%d", getpid(), CC->cs_pid);
+ snprintf(CC->temp, sizeof CC->temp, "/tmp/CitServer.%d.%d", getpid(), CC->cs_pid);
strcpy(CC->cs_room, "");
strncpy(CC->cs_host, config.c_fqdn, sizeof CC->cs_host);
CC->cs_host[sizeof CC->cs_host - 1] = 0;
#include "routines.h"
#include "ipc.h"
#include "citadel_decls.h"
+#include "tools.h"
+
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
void chatmode(void) {
char wbuf[256];
color(2);
}
if (strcmp(c_user,last_user)) {
- sprintf(buf,"%s: %s",c_user,c_text);
+ snprintf(buf,sizeof buf,"%s: %s",c_user,c_text);
}
else {
- sprintf(buf,"%40s","");
- sprintf(&buf[strlen(c_user)+2],
- "%s",c_text);
+ size_t i = MIN(sizeof buf - 1,
+ strlen(c_user) + 2);
+
+ memset(buf, ' ', i);
+ safestrncpy(&buf[i], c_text,
+ sizeof buf - i);
}
while (strlen(buf)<79) strcat(buf," ");
if (strcmp(c_user,last_user)) {
void newprompt(char *prompt, char *str, int len);
void strprompt(char *prompt, char *str, int len);
int boolprompt(char *prompt, int prev_val);
+int intprompt(char *prompt, int ival, int imin, int imax);
int fmout(int width, FILE *fp, char pagin, int height, int starting_lp,
char subst);
int getcmd(char *argbuf);
void sttybbs(int cmd);
void newprompt(char *prompt, char *str, int len);
void val_user(char *user);
-int intprompt(char *prompt, int ival, int imin, int imax);
void formout(char *name);
void logoff(int code);
void set_keepalives(int s);
*/
void val_user(char *user)
{
- int a,b;
+ int a;
char cmd[256];
char buf[256];
int ax = 0;