Added lots of "(void)" casts to standard function calls.
[exim.git] / src / src / malware.c
index 53dcb3aecfa5dec07d937eb5a2bd43d7fbeb2e89..c137d570f09a54ccc3c32bc7e614037d5a5355c6 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/malware.c,v 1.9 2005/06/06 18:49:35 tom Exp $ */
+/* $Cambridge: exim/src/src/malware.c,v 1.10 2005/06/27 14:29:43 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -69,7 +69,7 @@ int malware(uschar **listptr) {
   };
   /* none of our current scanners need the mbox
      file as a stream, so we can close it right away */
-  fclose(mbox_file);
+  (void)fclose(mbox_file);
 
   /* extract the malware regex to match against from the option list */
   if ((malware_regex = string_nextinlist(&list, &sep,
@@ -189,7 +189,7 @@ int malware(uschar **listptr) {
       }
 
       if (ip_connect(sock, AF_INET, (uschar*)inet_ntoa(in), port, 5) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: connection to %s, port %u failed (%s)",
           inet_ntoa(in), port, strerror(errno));
@@ -205,7 +205,7 @@ int malware(uschar **listptr) {
       /* calc file size */
       drweb_fd = open(CS scanrequest, O_RDONLY);
       if (drweb_fd == -1) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: can't open spool file %s: %s",
           scanrequest, strerror(errno));
@@ -213,8 +213,8 @@ int malware(uschar **listptr) {
       }
       fsize = lseek(drweb_fd, 0, SEEK_END);
       if (fsize == -1) {
-        close(sock);
-        close(drweb_fd);
+        (void)close(sock);
+        (void)close(drweb_fd);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: can't seek spool file %s: %s",
           scanrequest, strerror(errno));
@@ -228,8 +228,8 @@ int malware(uschar **listptr) {
           (send(sock, &drweb_flags, sizeof(drweb_flags), 0) < 0) ||
           (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0) ||
           (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0)) {
-        close(sock);
-        close(drweb_fd);
+        (void)close(sock);
+        (void)close(drweb_fd);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options);
         return DEFER;
@@ -237,8 +237,8 @@ int malware(uschar **listptr) {
 
       drweb_fbuf = (uschar *) malloc (fsize);
       if (!drweb_fbuf) {
-        close(sock);
-        close(drweb_fd);
+        (void)close(sock);
+        (void)close(drweb_fd);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: unable to allocate memory %u for file (%s)",
           fsize, scanrequest);
@@ -247,25 +247,25 @@ int malware(uschar **listptr) {
 
       result = read (drweb_fd, drweb_fbuf, fsize);
       if (result == -1) {
-        close(sock);
-        close(drweb_fd);
+        (void)close(sock);
+        (void)close(drweb_fd);
         free(drweb_fbuf);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: can't read spool file %s: %s",
           scanrequest, strerror(errno));
         return DEFER;
       }
-      close(drweb_fd);
+      (void)close(drweb_fd);
 
       /* send file body to socket */
       if (send(sock, drweb_fbuf, fsize, 0) < 0) {
-        close(sock);
+        (void)close(sock);
         free(drweb_fbuf);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: unable to send file body to socket (%s)", drweb_options);
         return DEFER;
       }
-      close(drweb_fd);
+      (void)close(drweb_fd);
     }
     else {
       /* open the drwebd UNIX socket */
@@ -278,7 +278,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, drweb_options);
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: unable to connect to socket (%s). errno=%d", drweb_options, errno);
         return DEFER;
@@ -296,7 +296,7 @@ int malware(uschar **listptr) {
           (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0) ||
           (send(sock, scanrequest, Ustrlen(scanrequest), 0) < 0) ||
           (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0)) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options);
         return DEFER;
@@ -305,7 +305,7 @@ int malware(uschar **listptr) {
 
     /* wait for result */
     if ((bread = recv(sock, &drweb_rc, sizeof(drweb_rc), 0) != sizeof(drweb_rc))) {
-      close(sock);
+      (void)close(sock);
       log_write(0, LOG_MAIN|LOG_PANIC,
         "malware acl condition: drweb: unable to read return code");
       return DEFER;
@@ -313,7 +313,7 @@ int malware(uschar **listptr) {
     drweb_rc = ntohl(drweb_rc);
 
     if ((bread = recv(sock, &drweb_vnum, sizeof(drweb_vnum), 0) != sizeof(drweb_vnum))) {
-      close(sock);
+      (void)close(sock);
       log_write(0, LOG_MAIN|LOG_PANIC,
         "malware acl condition: drweb: unable to read the number of viruses");
       return DEFER;
@@ -336,7 +336,7 @@ int malware(uschar **listptr) {
       {
         /* read the size of report */
         if ((bread = recv(sock, &drweb_slen, sizeof(drweb_slen), 0) != sizeof(drweb_slen))) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
             "malware acl condition: drweb: cannot read report size");
           return DEFER;
@@ -345,7 +345,7 @@ int malware(uschar **listptr) {
 
         /* read report body */
         if ((bread = recv(sock, tmpbuf, drweb_slen, 0)) != drweb_slen) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
             "malware acl condition: drweb: cannot read report string");
           return DEFER;
@@ -393,13 +393,13 @@ int malware(uschar **listptr) {
       if (drweb_s) {
         log_write(0, LOG_MAIN|LOG_PANIC,
           "malware acl condition: drweb: drweb daemon retcode 0x%x (%s)", drweb_rc, drweb_s);
-        close(sock);
+        (void)close(sock);
         return DEFER;
       }
       /* no virus found */
       malware_name = NULL;
     };
-    close(sock);
+    (void)close(sock);
   }
   /* ----------------------------------------------------------------------- */
     else if (strcmpic(scanner_name,US"aveserver") == 0) {
@@ -428,7 +428,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, kav_options);
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to connect to aveserver UNIX socket (%s). errno=%d", kav_options, errno);
         return DEFER;
@@ -439,7 +439,7 @@ int malware(uschar **listptr) {
 
       if (buf[0] != '2') {
         /* aveserver is having problems */
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: aveserver is unavailable (Responded: %s).", ((buf[0] != 0) ? buf : (uschar *)"nothing") );
         return DEFER;
@@ -450,7 +450,7 @@ int malware(uschar **listptr) {
 
       /* and send it */
       if (send(sock, buf, Ustrlen(buf), 0) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to write to aveserver UNIX socket (%s)", kav_options);
         return DEFER;
@@ -483,7 +483,7 @@ int malware(uschar **listptr) {
 
       /* and send it */
       if (send(sock, buf, Ustrlen(buf), 0) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to write to aveserver UNIX socket (%s)", kav_options);
         return DEFER;
@@ -494,13 +494,13 @@ int malware(uschar **listptr) {
 
       if (buf[0] != '2') {
         /* aveserver is having problems */
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to quit aveserver dialogue (Responded: %s).", ((buf[0] != 0) ? buf : (uschar *)"nothing") );
         return DEFER;
       };
 
-      close(sock);
+      (void)close(sock);
 
       if (result == DEFER) return DEFER;
     }
@@ -538,7 +538,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, fsecure_options);
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
                   "malware acl condition: unable to connect to fsecure socket %s (%s)",
                   fsecure_options, strerror(errno));
@@ -550,7 +550,7 @@ int malware(uschar **listptr) {
       for (i=0; i != 4; i++) {
         /* debug_printf("send option \"%s\"",cmdoptions[i]); */
         if (write(sock, cmdoptions[i], Ustrlen(cmdoptions[i])) < 0) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
                     "malware acl condition: unable to write fsecure option %d to %s (%s)",
                     i, fsecure_options, strerror(errno));
@@ -560,7 +560,7 @@ int malware(uschar **listptr) {
         bread = read(sock, av_buffer, sizeof(av_buffer));
         if (bread >0) av_buffer[bread]='\0';
         if (bread < 0) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
                     "malware acl condition: unable to read fsecure answer %d (%s)", i, strerror(errno));
           return DEFER;
@@ -574,7 +574,7 @@ int malware(uschar **listptr) {
       snprintf(CS 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) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
                   "malware acl condition: unable to write fsecure scan to %s (%s)",
                   fsecure_options, strerror(errno));
@@ -593,7 +593,7 @@ int malware(uschar **listptr) {
         do {
           bread=read(sock, &av_buffer[i], 1);
           if (bread < 0) {
-            close(sock);
+            (void)close(sock);
             log_write(0, LOG_MAIN|LOG_PANIC,
                       "malware acl condition: unable to read fsecure result (%s)", strerror(errno));
             return DEFER;
@@ -616,7 +616,7 @@ int malware(uschar **listptr) {
         };
       }
       while (Ustrstr(av_buffer, "OK\tScan ok.") == NULL);
-      close(sock);
+      (void)close(sock);
     }
     /* ----------------------------------------------------------------------- */
 
@@ -652,7 +652,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, kav_options);
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to connect to kavdaemon UNIX socket (%s). errno=%d", kav_options, errno);
         return DEFER;
@@ -665,7 +665,7 @@ int malware(uschar **listptr) {
 
       /* send scan request */
       if (send(sock, scanrequest, Ustrlen(scanrequest)+1, 0) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to write to kavdaemon UNIX socket (%s)", kav_options);
         return DEFER;
@@ -673,7 +673,7 @@ int malware(uschar **listptr) {
 
       /* wait for result */
       if ((bread = recv(sock, tmpbuf, 2, 0) != 2)) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to read 2 bytes from kavdaemon socket.");
         return DEFER;
@@ -689,21 +689,21 @@ int malware(uschar **listptr) {
 
       /* improper kavdaemon configuration */
       if ( (kav_rc == 5) || (kav_rc == 6) ) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: please reconfigure kavdaemon to NOT disinfect or remove infected files.");
         return DEFER;
       };
 
       if (kav_rc == 1) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: kavdaemon reported 'scanning not completed' (code 1).");
         return DEFER;
       };
 
       if (kav_rc == 7) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: kavdaemon reported 'kavdaemon damaged' (code 7).");
         return DEFER;
@@ -731,7 +731,7 @@ int malware(uschar **listptr) {
         if( report_flag == 1 ) {
           /* read report size */
           if ((bread = recv(sock, &kav_reportlen, 4, 0)) != 4) {
-            close(sock);
+            (void)close(sock);
             log_write(0, LOG_MAIN|LOG_PANIC,
                   "malware acl condition: cannot read report size from kavdaemon");
             return DEFER;
@@ -781,7 +781,7 @@ int malware(uschar **listptr) {
         malware_name = NULL;
       };
 
-      close(sock);
+      (void)close(sock);
     }
     /* ----------------------------------------------------------------------- */
 
@@ -900,7 +900,7 @@ int malware(uschar **listptr) {
           trigger = 1;
       };
 
-      fclose(scanner_record);
+      (void)fclose(scanner_record);
       pclose(scanner_out);
       signal(SIGCHLD,eximsigchld);
       signal(SIGPIPE,eximsigpipe);
@@ -919,7 +919,7 @@ int malware(uschar **listptr) {
             pcre_copy_substring(CS linebuffer, ovector, result, 1, CS malware_name_buffer, 255);
           };
         };
-        fclose(scanner_record);
+        (void)fclose(scanner_record);
       }
       else {
         /* no virus found */
@@ -957,7 +957,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, sophie_options);
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to connect to sophie UNIX socket (%s). errno=%d", sophie_options, errno);
         return DEFER;
@@ -966,24 +966,24 @@ int malware(uschar **listptr) {
       /* pass the scan directory to sophie */
       snprintf(CS file_name,1024,"%s/scan/%s", spool_directory, message_id);
       if (write(sock, file_name, Ustrlen(file_name)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to write to sophie UNIX socket (%s)", sophie_options);
         return DEFER;
       };
 
-      write(sock, "\n", 1);
+      (void)write(sock, "\n", 1);
 
       /* wait for result */
       memset(av_buffer, 0, sizeof(av_buffer));
       if ((!(bread = read(sock, av_buffer, sizeof(av_buffer))) > 0)) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to read from sophie UNIX socket (%s)", sophie_options);
         return DEFER;
       };
 
-      close(sock);
+      (void)close(sock);
 
       /* infected ? */
       if (av_buffer[0] == '1') {
@@ -1068,7 +1068,7 @@ int malware(uschar **listptr) {
         }
 
         if (ip_connect(sock, AF_INET, (uschar*)inet_ntoa(in), port, 5) < 0) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
                     "malware acl condition: clamd: connection to %s, port %u failed (%s)",
                     inet_ntoa(in), port, strerror(errno));
@@ -1082,7 +1082,7 @@ int malware(uschar **listptr) {
           snprintf(CS file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
 
           if (send(sock, file_name, Ustrlen(file_name), 0) < 0) {
-            close(sock);
+            (void)close(sock);
             log_write(0, LOG_MAIN|LOG_PANIC,"malware acl condition: clamd: unable to write to socket (%s)",
                   strerror(errno));
             return DEFER;
@@ -1092,7 +1092,7 @@ int malware(uschar **listptr) {
       /* Pass the string to ClamAV (7 = "STREAM\n") */
 
           if (send(sock, "STREAM\n", 7, 0) < 0) {
-            close(sock);
+            (void)close(sock);
             log_write(0, LOG_MAIN|LOG_PANIC,"malware acl condition: clamd: unable to write to socket (%s)",
                   strerror(errno));
             return DEFER;
@@ -1134,7 +1134,7 @@ int malware(uschar **listptr) {
           }
 
           if (ip_connect(sockData, AF_INET, (uschar*)inet_ntoa(in), port, 5) < 0) {
-            close(sockData);
+            (void)close(sockData);
             log_write(0, LOG_MAIN|LOG_PANIC,
                     "malware acl condition: clamd: connection to %s, port %u failed (%s)",
                     inet_ntoa(in), port, strerror(errno));
@@ -1163,8 +1163,8 @@ int malware(uschar **listptr) {
 
     clamav_fbuf = (uschar *) malloc (fsize);
     if (!clamav_fbuf) {
-      close(sockData);
-      close(clam_fd);
+      (void)close(sockData);
+      (void)close(clam_fd);
       log_write(0, LOG_MAIN|LOG_PANIC,
         "malware acl condition: clamd: unable to allocate memory %u for file (%s)",
         fsize, scanrequest);
@@ -1173,26 +1173,26 @@ int malware(uschar **listptr) {
 
     result = read (clam_fd, clamav_fbuf, fsize);
     if (result == -1) {
-      close(sockData);
-      close(clam_fd);
+      (void)close(sockData);
+      (void)close(clam_fd);
       free(clamav_fbuf);
       log_write(0, LOG_MAIN|LOG_PANIC,
         "malware acl condition: clamd: can't read spool file %s: %s",
         scanrequest, strerror(errno));
       return DEFER;
     }
-    close(clam_fd);
+    (void)close(clam_fd);
 
     /* send file body to socket */
     if (send(sockData, clamav_fbuf, fsize, 0) < 0) {
-      close(sockData);
+      (void)close(sockData);
       free(clamav_fbuf);
       log_write(0, LOG_MAIN|LOG_PANIC,
         "malware acl condition: clamd: unable to send file body to socket (%s:%u)", hostname, port);
       return DEFER;
     }
     free(clamav_fbuf);
-          close(sockData);
+          (void)close(sockData);
         }
       }
       else {
@@ -1208,7 +1208,7 @@ int malware(uschar **listptr) {
         Ustrcpy(server.sun_path, clamd_options);
 
         if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-          close(sock);
+          (void)close(sock);
           log_write(0, LOG_MAIN|LOG_PANIC,
                     "malware acl condition: clamd: unable to connect to UNIX socket %s (%s)",
                     clamd_options, strerror(errno) );
@@ -1221,7 +1221,7 @@ int malware(uschar **listptr) {
       snprintf(CS file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
 
       if (send(sock, file_name, Ustrlen(file_name), 0) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,"malware acl condition: clamd: unable to write to socket (%s)",
                   strerror(errno));
         return DEFER;
@@ -1239,7 +1239,7 @@ int malware(uschar **listptr) {
       /* Read the result */
       memset(av_buffer, 0, sizeof(av_buffer));
       bread = read(sock, av_buffer, sizeof(av_buffer));
-      close(sock);
+      (void)close(sock);
 
       if (!(bread  > 0)) {
         log_write(0, LOG_MAIN|LOG_PANIC,
@@ -1339,7 +1339,7 @@ int malware(uschar **listptr) {
       server.sun_family = AF_UNIX;
       Ustrcpy(server.sun_path, "/var/run/mksd/socket");
       if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
-        close(sock);
+        (void)close(sock);
         log_write(0, LOG_MAIN|LOG_PANIC,
              "malware acl condition: unable to connect to mksd UNIX socket (/var/run/mksd/socket). errno=%d", errno);
         return DEFER;