Convert all Tom's calls to snprintf() to string_format().
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 1 Aug 2005 14:41:25 +0000 (14:41 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 1 Aug 2005 14:41:25 +0000 (14:41 +0000)
doc/doc-txt/ChangeLog
src/src/demime.c
src/src/dk.c
src/src/malware.c
src/src/mime.c
src/src/receive.c
src/src/spam.c
src/src/spool_mbox.c
src/src/transport.c

index 5f37fd9..d2600f9 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.186 2005/08/01 14:00:34 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.187 2005/08/01 14:41:25 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -21,6 +21,10 @@ PH/04 Added $message_exim_id, ultimately to replace $message_id (they will both
       co-exist for some time) to make it clear that it is the Exim ID that is
       referenced, not the Message-ID: header line.
 
+PH/05 Replaced all Tom's calls to snprintf() with calls to the internal
+      string_format() function, because snprintf() does not exist on all
+      operating systems.
+
 
 Exim version 4.52
 -----------------
index 1f86407..0ab7877 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/demime.c,v 1.7 2005/07/01 10:49:02 ph10 Exp $ */
+/* $Cambridge: exim/src/src/demime.c,v 1.8 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -245,7 +245,7 @@ int mime_get_dump_file(uschar *extension, FILE **f, uschar *info) {
   do {
     struct stat mystat;
 
-    snprintf(CS file_name,1024,"%s/scan/%s/%s-%05u%s",spool_directory,message_id,message_id,file_nr,extension);
+    (void)string_format(file_name,1024,"%s/scan/%s/%s-%05u%s",spool_directory,message_id,message_id,file_nr,extension);
     file_nr++;
     if (file_nr >= MIME_SANITY_MAX_DUMP_FILES) {
       /* max parts reached */
@@ -259,7 +259,7 @@ int mime_get_dump_file(uschar *extension, FILE **f, uschar *info) {
   *f = fopen(CS file_name,"wb+");
   if (*f == NULL) {
     /* cannot open new dump file, disk full ? -> soft error */
-    snprintf(CS info, 1024,"unable to open dump file");
+    (void)string_format(info, 1024,"unable to open dump file");
     return -2;
   };
 
@@ -533,13 +533,13 @@ long uu_decode_line(uschar *line, uschar **data, long line_len, uschar *info) {
   /* allocate memory for data and work buffer */
   *data = (uschar *)malloc(line_len);
   if (*data == NULL) {
-    snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
+    (void)string_format(info, 1024,"unable to allocate %lu bytes",line_len);
     return -2;
   };
 
   work = (uschar *)malloc(line_len);
   if (work == NULL) {
-    snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
+    (void)string_format(info, 1024,"unable to allocate %lu bytes",line_len);
     return -2;
   };
 
@@ -656,7 +656,7 @@ long mime_decode_line(int mime_demux_mode,uschar *line, uschar **data, long max_
   /* allocate memory for data */
   *data = (uschar *)malloc(max_data_len);
   if (*data == NULL) {
-    snprintf(CS info, 1024,"unable to allocate %lu bytes",max_data_len);
+    (void)string_format(info, 1024,"unable to allocate %lu bytes",max_data_len);
     return -2;
   };
 
@@ -820,7 +820,7 @@ void mime_trigger_error(int level, uschar *format, ...) {
     sprintf(f,"demime acl condition: ");
     f+=22;
     va_start(ap, format);
-    vsnprintf(f, 16383,(char *)format, ap);
+    (void)string_vformat(US f, 16383,(char *)format, ap);
     va_end(ap);
     f-=22;
     log_write(0, LOG_MAIN, f);
@@ -866,7 +866,7 @@ int mime_demux(FILE *f, uschar *info) {
   /* allocate room for our linebuffer */
   line = (uschar *)malloc(MIME_SANITY_MAX_LINE_LENGTH);
   if (line == NULL) {
-    snprintf(CS info, 1024,"unable to allocate %u bytes",MIME_SANITY_MAX_LINE_LENGTH);
+    (void)string_format(info, 1024,"unable to allocate %u bytes",MIME_SANITY_MAX_LINE_LENGTH);
     return DEFER;
   };
 
@@ -1126,7 +1126,7 @@ int mime_demux(FILE *f, uschar *info) {
         if (data_len > 0) {
           if (fwrite(data,1,data_len,uu_dump_file) < data_len) {
             /* short write */
-            snprintf(CS info, 1024,"short write on uudecode dump file");
+            (void)string_format(info, 1024,"short write on uudecode dump file");
             free(line);
             return DEFER;
           };
@@ -1192,7 +1192,7 @@ int mime_demux(FILE *f, uschar *info) {
           if (data_len > 0) {
             if (fwrite(data,1,data_len,mime_dump_file) < data_len) {
               /* short write */
-              snprintf(CS info, 1024,"short write on dump file");
+              (void)string_format(info, 1024,"short write on dump file");
               free(line);
               return DEFER;
             };
@@ -1234,7 +1234,7 @@ int mime_demux(FILE *f, uschar *info) {
     /* at least one file could be TNEF encoded.
     attempt to send all decoded files thru the TNEF decoder */
 
-    snprintf(CS file_name,1024,"%s/scan/%s",spool_directory,message_id);
+    (void)string_format(file_name,1024,"%s/scan/%s",spool_directory,message_id);
     /* Removed FTTB. We need to decide on TNEF inclusion */
     /* mime_unpack_tnef(file_name); */
   };
index 4d963f1..0a61e0f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/dk.c,v 1.6 2005/06/27 15:11:59 tom Exp $ */
+/* $Cambridge: exim/src/src/dk.c,v 1.7 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -409,7 +409,7 @@ uschar *dk_exim_sign(int dk_fd,
 
   rc = store_get(1024);
   /* Build DomainKey-Signature header to return. */
-  snprintf(CS rc, 1024, "DomainKey-Signature: a=rsa-sha1; q=dns; c=%s;\r\n"
+  (void)string_format(rc, 1024, "DomainKey-Signature: a=rsa-sha1; q=dns; c=%s;\r\n"
                      "\ts=%s; d=%s;\r\n"
                      "\tb=%s;\r\n", dk_canon, dk_selector, dk_domain, sig);
 
index a790b28..ca9c3df 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/malware.c,v 1.11 2005/07/01 10:49:02 ph10 Exp $ */
+/* $Cambridge: exim/src/src/malware.c,v 1.12 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -199,7 +199,7 @@ int malware(uschar **listptr) {
       /* prepare variables */
       drweb_cmd = htonl(DRWEBD_SCAN_CMD);
       drweb_flags = htonl(DRWEBD_RETURN_VIRUSES | DRWEBD_IS_MAIL);
-      snprintf(CS scanrequest, 1024,CS"%s/scan/%s/%s.eml",
+      (void)string_format(scanrequest, 1024,CS"%s/scan/%s/%s.eml",
             spool_directory, message_id, message_id);
 
       /* calc file size */
@@ -287,7 +287,7 @@ int malware(uschar **listptr) {
       /* prepare variables */
       drweb_cmd = htonl(DRWEBD_SCAN_CMD);
       drweb_flags = htonl(DRWEBD_RETURN_VIRUSES | DRWEBD_IS_MAIL);
-      snprintf(CS scanrequest, 1024,CS"%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
+      (void)string_format(scanrequest, 1024,CS"%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
       drweb_slen = htonl(Ustrlen(scanrequest));
 
       /* send scan request */
@@ -446,7 +446,7 @@ int malware(uschar **listptr) {
       };
 
       /* prepare our command */
-      snprintf(CS buf, 32768, "SCAN bPQRSTUW %s/scan/%s/%s.eml\r\n", spool_directory, message_id, message_id);
+      (void)string_format(buf, 32768, "SCAN bPQRSTUW %s/scan/%s/%s.eml\r\n", spool_directory, message_id, message_id);
 
       /* and send it */
       if (send(sock, buf, Ustrlen(buf), 0) < 0) {
@@ -479,7 +479,7 @@ int malware(uschar **listptr) {
       }
 
       /* prepare our command */
-      snprintf(CS buf, 32768, "quit\r\n");
+      (void)string_format(buf, 32768, "quit\r\n");
 
       /* and send it */
       if (send(sock, buf, Ustrlen(buf), 0) < 0) {
@@ -571,7 +571,7 @@ int malware(uschar **listptr) {
       };
 
       /* pass the mailfile to fsecure */
-      snprintf(CS file_name,1024,"SCAN\t%s/scan/%s/%s.eml\n", spool_directory, message_id, message_id);
+      (void)string_format(file_name,1024,"SCAN\t%s/scan/%s/%s.eml\n", spool_directory, message_id, message_id);
       /* debug_printf("send scan %s",file_name); */
       if (write(sock, file_name, Ustrlen(file_name)) < 0) {
         (void)close(sock);
@@ -661,7 +661,7 @@ int malware(uschar **listptr) {
       /* get current date and time, build scan request */
       time(&t);
       strftime(CS tmpbuf, sizeof(tmpbuf), "<0>%d %b %H:%M:%S:%%s/scan/%%s", localtime(&t));
-      snprintf(CS scanrequest, 1024,CS tmpbuf, spool_directory, message_id);
+      (void)string_format(scanrequest, 1024,CS tmpbuf, spool_directory, message_id);
 
       /* send scan request */
       if (send(sock, scanrequest, Ustrlen(scanrequest)+1, 0) < 0) {
@@ -854,8 +854,8 @@ int malware(uschar **listptr) {
       };
 
       /* prepare scanner call */
-      snprintf(CS file_name,1024,"%s/scan/%s", spool_directory, message_id);
-      snprintf(CS commandline,1024, CS cmdline_scanner,file_name);
+      (void)string_format(file_name,1024,"%s/scan/%s", spool_directory, message_id);
+      (void)string_format(commandline,1024, CS cmdline_scanner,file_name);
       /* redirect STDERR too */
       Ustrcat(commandline," 2>&1");
 
@@ -872,7 +872,7 @@ int malware(uschar **listptr) {
         return DEFER;
       };
 
-      snprintf(CS file_name,1024,"%s/scan/%s/%s_scanner_output", spool_directory, message_id, message_id);
+      (void)string_format(file_name,1024,"%s/scan/%s/%s_scanner_output", spool_directory, message_id, message_id);
       scanner_record = fopen(CS file_name,"wb");
 
       if (scanner_record == NULL) {
@@ -964,7 +964,7 @@ int malware(uschar **listptr) {
       }
 
       /* pass the scan directory to sophie */
-      snprintf(CS file_name,1024,"%s/scan/%s", spool_directory, message_id);
+      (void)string_format(file_name,1024,"%s/scan/%s", spool_directory, message_id);
       if (write(sock, file_name, Ustrlen(file_name)) < 0) {
         (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
@@ -1079,7 +1079,7 @@ int malware(uschar **listptr) {
 
       /* Pass the string to ClamAV (7 = "SCAN \n" + \0) */
 
-          snprintf(CS file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
+          (void)string_format(file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
 
           if (send(sock, file_name, Ustrlen(file_name), 0) < 0) {
             (void)close(sock);
@@ -1141,7 +1141,7 @@ int malware(uschar **listptr) {
             return DEFER;
           }
 
-    snprintf(CS scanrequest, 1024,CS"%s/scan/%s/%s.eml",
+      (void)string_format(scanrequest, 1024,CS"%s/scan/%s/%s.eml",
       spool_directory, message_id, message_id);
 
     /* calc file size */
@@ -1218,7 +1218,7 @@ int malware(uschar **listptr) {
 
       /* Pass the string to ClamAV (7 = "SCAN \n" + \0) */
 
-      snprintf(CS file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
+      (void)string_format(file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
 
       if (send(sock, file_name, Ustrlen(file_name), 0) < 0) {
         (void)close(sock);
index a4ad0f5..548a16d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/mime.c,v 1.9 2005/07/01 10:49:02 ph10 Exp $ */
+/* $Cambridge: exim/src/src/mime.c,v 1.10 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -243,7 +243,7 @@ FILE *mime_get_decode_file(uschar *pname, uschar *fname) {
   filename = (uschar *)malloc(2048);
 
   if ((pname != NULL) && (fname != NULL)) {
-    snprintf(CS filename, 2048, "%s/%s", pname, fname);
+    (void)string_format(filename, 2048, "%s/%s", pname, fname);
     f = fopen(CS filename,"wb+");
   }
   else if (pname == NULL) {
@@ -256,7 +256,7 @@ FILE *mime_get_decode_file(uschar *pname, uschar *fname) {
     /* must find first free sequential filename */
     do {
       struct stat mystat;
-      snprintf(CS filename,2048,"%s/%s-%05u", pname, message_id, file_nr);
+      (void)string_format(filename,2048,"%s/%s-%05u", pname, message_id, file_nr);
       file_nr++;
       /* security break */
       if (file_nr >= 1024)
@@ -292,7 +292,7 @@ int mime_decode(uschar **listptr) {
   f_pos = ftell(mime_stream);
 
   /* build default decode path (will exist since MBOX must be spooled up) */
-  snprintf(CS decode_path,1024,"%s/scan/%s",spool_directory,message_id);
+  (void)string_format(decode_path,1024,"%s/scan/%s",spool_directory,message_id);
 
   /* reserve a line and decoder buffer to work in */
   buffer = (uschar *)malloc(MIME_MAX_LINE_LENGTH+1);
@@ -693,7 +693,7 @@ int mime_acl_check(uschar *acl, FILE *f, struct mime_boundary_context *context,
       /* must find first free sequential filename */
       do {
         struct stat mystat;
-        snprintf(CS filename,2048,"%s/scan/%s/__rfc822_%05u", spool_directory, message_id, file_nr);
+        (void)string_format(filename,2048,"%s/scan/%s/__rfc822_%05u", spool_directory, message_id, file_nr);
         file_nr++;
         /* security break */
         if (file_nr >= 128)
index 7fa3587..e2d6a1a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/receive.c,v 1.21 2005/07/01 10:49:02 ph10 Exp $ */
+/* $Cambridge: exim/src/src/receive.c,v 1.22 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1097,7 +1097,8 @@ if (rc == OK) {
   struct dirent *entry;
   DIR *tempdir;
 
-  snprintf(CS temp_path, 1024, "%s/scan/%s", spool_directory, message_id);
+  (void)string_format(temp_path, 1024, "%s/scan/%s", spool_directory,
+    message_id);
 
  tempdir = opendir(CS temp_path);
  n = 0;
@@ -1105,7 +1106,7 @@ if (rc == OK) {
    entry = readdir(tempdir);
    if (entry == NULL) break;
     if (strncmpic(US entry->d_name,US"__rfc822_",9) == 0) {
-      snprintf(CS rfc822_file_path, 2048,"%s/scan/%s/%s", spool_directory, message_id, entry->d_name);
+      (void)string_format(rfc822_file_path, 2048,"%s/scan/%s/%s", spool_directory, message_id, entry->d_name);
      debug_printf("RFC822 attachment detected: running MIME ACL for '%s'\n", rfc822_file_path);
      break;
     };
index 7ee4268..e49bc56 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/spam.c,v 1.10 2005/06/27 15:11:04 tom Exp $ */
+/* $Cambridge: exim/src/src/spam.c,v 1.11 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -195,7 +195,7 @@ int spam(uschar **listptr) {
   }
 
   /* now we are connected to spamd on spamd_sock */
-  snprintf(CS spamd_buffer,
+  (void)string_format(spamd_buffer,
            sizeof(spamd_buffer),
            "REPORT SPAMC/1.2\r\nUser: %s\r\nContent-length: %ld\r\n\r\n",
            user_name,
@@ -362,12 +362,12 @@ again:
   spam_bar = spam_bar_buffer;
 
   /* create "float" spam score */
-  snprintf(CS spam_score_buffer, sizeof(spam_score_buffer),"%.1f", spamd_score);
+  (void)string_format(spam_score_buffer, sizeof(spam_score_buffer),"%.1f", spamd_score);
   spam_score = spam_score_buffer;
 
   /* create "int" spam score */
   j = (int)((spamd_score + 0.001)*10);
-  snprintf(CS spam_score_int_buffer, sizeof(spam_score_int_buffer), "%d", j);
+  (void)string_format(spam_score_int_buffer, sizeof(spam_score_int_buffer), "%d", j);
   spam_score_int = spam_score_int_buffer;
 
   /* compare threshold against score */
index af9a46b..e96dca4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/spool_mbox.c,v 1.9 2005/08/01 13:51:05 ph10 Exp $ */
+/* $Cambridge: exim/src/src/spool_mbox.c,v 1.10 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -48,14 +48,14 @@ FILE *spool_mbox(unsigned long *mbox_file_size) {
     };
 
     /* create temp directory inside scan dir */
-    snprintf(CS mbox_path, 1024, "%s/scan/%s", spool_directory, message_id);
+    (void)string_format(mbox_path, 1024, "%s/scan/%s", spool_directory, message_id);
     if (!directory_make(NULL, mbox_path, 0750, FALSE)) {
       debug_printf("unable to create directory: %s/scan/%s\n", spool_directory, message_id);
       return NULL;
     };
 
     /* open [message_id].eml file for writing */
-    snprintf(CS mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
+    (void)string_format(mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
     mbox_file = Ufopen(mbox_path,"wb");
 
     if (mbox_file == NULL) {
@@ -167,7 +167,7 @@ FILE *spool_mbox(unsigned long *mbox_file_size) {
     spool_mbox_ok = 1;
   };
 
-  snprintf(CS mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
+  (void)string_format(mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
 
   /* get the size of the mbox message */
   stat(CS mbox_path, &statbuf);
@@ -204,7 +204,7 @@ void unspool_mbox(void) {
       struct dirent *entry;
       DIR *tempdir;
 
-      snprintf(CS mbox_path, 1024, "%s/scan/%s", spool_directory, spooled_message_id);
+      (void)string_format(mbox_path, 1024, "%s/scan/%s", spool_directory, spooled_message_id);
 
   tempdir = opendir(CS mbox_path);
   /* loop thru dir & delete entries */
@@ -212,7 +212,7 @@ void unspool_mbox(void) {
   do {
     entry = readdir(tempdir);
     if (entry == NULL) break;
-    snprintf(CS file_path, 1024,"%s/scan/%s/%s", spool_directory, spooled_message_id, entry->d_name);
+    (void)string_format(file_path, 1024,"%s/scan/%s/%s", spool_directory, spooled_message_id, entry->d_name);
     if ( (Ustrcmp(entry->d_name,"..") != 0) && (Ustrcmp(entry->d_name,".") != 0) ) {
       debug_printf("unspool_mbox(): unlinking '%s'\n", file_path);
               n = unlink(CS file_path);
index a75a2df..e66e498 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/transport.c,v 1.12 2005/06/27 14:29:44 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transport.c,v 1.13 2005/08/01 14:41:25 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -984,7 +984,7 @@ dk_transport_write_message(address_item *addr, int fd, int options,
   int wwritten = 0;
   uschar *dk_signature = NULL;
 
-  snprintf(CS dk_spool_name, 256, "%s/input/%s/%s-K",
+  (void)string_format(dk_spool_name, 256, "%s/input/%s/%s-K",
           spool_directory, message_subdir, message_id);
   dk_fd = Uopen(dk_spool_name, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE);
   if (dk_fd < 0)