int flags;
{
int sock;
+ int sz;
popserver server;
/* Determine the user name */
"recompile pop.c with larger ERROR_MAX");
return (0);
}
- sprintf (pop_error, "USER %s", username);
+ sz = snprintf (pop_error, sizeof(pop_error), "USER %s", username);
+ assert(sz>=0 && sz<sizeof(pop_error));
if (sendline (server, pop_error) || getok (server)) {
return (0);
"recompile pop.c with larger ERROR_MAX");
return (0);
}
- sprintf (pop_error, "PASS %s", password);
+ sz = snprintf (pop_error, sizeof(pop_error),
+ "PASS %s", password);
+ assert(sz>=0 && sz<sizeof(pop_error));
if (sendline (server, pop_error) || getok (server)) {
return (0);
}
if (message) {
- sprintf (pop_error, "LIST %d", message);
+ sz = snprintf (pop_error, sizeof(pop_error), "LIST %d", message);
+ assert(sz>=0 && sz<sizeof(pop_error));
if (sendline (server, pop_error)) {
free ((char *) *IDs);
free ((char *) *sizes);
int message;
char **response;
{
- sprintf (pop_error, "RETR %d", message);
+ int sz = snprintf (pop_error, sizeof(pop_error), "RETR %d", message);
+ assert(sz>=0 && sz<sizeof(pop_error));
return (pop_multi_first (server, pop_error, response));
}
int message, lines;
char **response;
{
- sprintf (pop_error, "TOP %d %d", message, lines);
+ int sz = snprintf (pop_error, sizeof(pop_error),
+ "TOP %d %d", message, lines);
+ assert(sz>=0 && sz<sizeof(pop_error));
return (pop_multi_first (server, pop_error, response));
}
popserver server;
int message;
{
+ int sz;
+
if (server->in_multi) {
strcpy (pop_error, "In multi-line query in pop_delete");
return (-1);
}
- sprintf (pop_error, "DELE %d", message);
+ sz = snprintf (pop_error, sizeof(pop_error),
+ "DELE %d", message);
+ assert(sz>=0 && sz<sizeof(pop_error));
if (sendline (server, pop_error) || getok (server))
return (-1);