Fix udpsend and ip_connectedsocket().
[exim.git] / src / src / malware.c
index 8260a48153c9c4f26e8193152ec85ee1d76b5be6..7685554ae8c50ea80b50cdb1f7464b7b70e02be5 100644 (file)
@@ -42,7 +42,7 @@ static struct scan
 #define MAX_CLAMD_ADDRESS_LENGTH_S "64"
 
 typedef struct clamd_address_container {
-  uschar tcp_addr[MAX_CLAMD_ADDRESS_LENGTH];
+  uschar tcp_addr[MAX_CLAMD_ADDRESS_LENGTH+1];
   unsigned int tcp_port;
 } clamd_address_container;
 
@@ -946,7 +946,7 @@ malware_internal(uschar **listptr, uschar *eml_filename, BOOL faking)
        signal(SIGCHLD,eximsigchld); signal(SIGPIPE,eximsigpipe);
        if (sep != 0)
            return m_errlog_defer(scanent,
-               sep = -1
+               sep == -1
                ? string_sprintf("running scanner failed: %s", strerror(sep))
                : string_sprintf("scanner returned error code: %d", sep));
 
@@ -1029,7 +1029,6 @@ malware_internal(uschar **listptr, uschar *eml_filename, BOOL faking)
 
        uschar *p, *vname, *result_tag, *response_end;
        int bread=0;
-       unsigned int port;
        uschar * file_name;
        uschar av_buffer[1024];
        uschar *hostname = US"";
@@ -1042,6 +1041,7 @@ malware_internal(uschar **listptr, uschar *eml_filename, BOOL faking)
        int current_server;
        int num_servers = 0;
   #ifdef WITH_OLD_CLAMAV_STREAM
+       unsigned int port;
        uschar av_buffer2[1024];
        int sockData;
   #else