Merge branch 'master' of ssh://dio.dreamhost.com/~/repos.nelsonferreira.com/git/sxema...
[sxemacs] / lib-src / pop.c
index b4e3fba..5e88567 100644 (file)
@@ -175,6 +175,7 @@ pop_open (host, username, password, flags)
      int flags;
 {
        int sock;
+       int sz;
        popserver server;
 
        /* Determine the user name */
@@ -287,7 +288,8 @@ pop_open (host, username, password, flags)
                        "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);
@@ -300,7 +302,9 @@ pop_open (host, username, password, flags)
                        "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);
@@ -417,7 +421,8 @@ pop_list (server, message, IDs, sizes)
        }
 
        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);
@@ -594,7 +599,8 @@ pop_retrieve_first (server, message, response)
      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));
 }
 
@@ -627,7 +633,9 @@ pop_top_first (server, message, lines, 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));
 }
 
@@ -763,12 +771,16 @@ pop_delete (server, message)
      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);