Browse code

Remove possible array overflow when looking for a free server

git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@1160 77e5149b-7576-45b1-b177-96237e5ba77b

Nigel Horne authored on 2004/12/05 08:36:14
Showing 4 changed files
... ...
@@ -1,3 +1,8 @@
1
+Sat Dec  4 23:34:54 GMT 2004 (njh)
2
+----------------------------------
3
+  * clamav-milter:	Fix possible mishandling of multiple children when
4
+				searching for a free server
5
+
1 6
 Sat Dec  4 17:04:40 GMT 2004 (njh)
2 7
 ----------------------------------
3 8
   * libclamav/blob.c:	Fixed filename handling in MACOS/X
... ...
@@ -575,6 +575,7 @@ Changes
575 575
 		The default value for --timeout has been changed from 60
576 576
 			seconds to 0 (wait forever)
577 577
 0.80w	3/12/04: --internal now honours scanning modes and archive limits
578
+0.80x	4/12/04: findServer() could return values out of range
578 579
 
579 580
 INTERNATIONALISATION
580 581
 
... ...
@@ -26,6 +26,9 @@
26 26
  *
27 27
  * Change History:
28 28
  * $Log: clamav-milter.c,v $
29
+ * Revision 1.158  2004/12/04 23:33:47  nigelhorne
30
+ * Remove possible array overflow when looking for a free server
31
+ *
29 32
  * Revision 1.157  2004/12/03 17:34:58  nigelhorne
30 33
  * internal: Honour scanning modes and archive limits
31 34
  *
... ...
@@ -482,9 +485,9 @@
482 482
  * Revision 1.6  2003/09/28 16:37:23  nigelhorne
483 483
  * Added -f flag use MaxThreads if --max-children not set
484 484
  */
485
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.157 2004/12/03 17:34:58 nigelhorne Exp $";
485
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.158 2004/12/04 23:33:47 nigelhorne Exp $";
486 486
 
487
-#define	CM_VERSION	"0.80w"
487
+#define	CM_VERSION	"0.80x"
488 488
 
489 489
 /*#define	CONFDIR	"/usr/local/etc"*/
490 490
 
... ...
@@ -824,13 +827,13 @@ static	char	*port = NULL;	/* sendmail->milter comms */
824 824
 
825 825
 static	const	char	*serverHostNames = "127.0.0.1";
826 826
 static	long	*serverIPs;	/* IPv4 only */
827
-static	int	numServers;	/* number of elements in sessions array */
827
+static	int	numServers;	/* number of elements in serverIPs array */
828 828
 
829 829
 #ifdef	SESSION
830 830
 static	struct	session {
831 831
 	int	sock;	/* fd */
832 832
 	enum	{ CMDSOCKET_FREE, CMDSOCKET_INUSE, CMDSOCKET_DOWN }	status;
833
-} *sessions;
833
+} *sessions;	/* max_children elements in the array */
834 834
 static	pthread_mutex_t sstatus_mutex = PTHREAD_MUTEX_INITIALIZER;
835 835
 
836 836
 static	pthread_cond_t	watchdog_cond = PTHREAD_COND_INITIALIZER;
... ...
@@ -1396,6 +1399,7 @@ main(int argc, char **argv)
1396 1396
 		}
1397 1397
 		if(loadDatabase() != 0)
1398 1398
 			return EX_CONFIG;
1399
+		numServers = 1;
1399 1400
 	} else if((cpt = cfgopt(copt, "LocalSocket")) != NULL) {
1400 1401
 #ifdef	SESSION
1401 1402
 		struct sockaddr_un server;
... ...
@@ -1782,8 +1786,7 @@ main(int argc, char **argv)
1782 1782
 	signal(SIGPIPE, SIG_IGN);
1783 1783
 
1784 1784
 	if(use_syslog) {
1785
-		if(logVerbose)
1786
-			syslog(LOG_INFO, _("Starting: %s"), clamav_version);
1785
+		syslog(LOG_INFO, _("Starting %s"), clamav_version);
1787 1786
 #ifdef	CL_DEBUG
1788 1787
 		if(debug_level > 0)
1789 1788
 			syslog(LOG_DEBUG, _("Debugging is on"));
... ...
@@ -1809,6 +1812,8 @@ createSession(int s)
1809 1809
 	const int serverNumber = s % numServers;
1810 1810
 	struct session *session = &sessions[s];
1811 1811
 
1812
+	assert(s < max_children);
1813
+
1812 1814
 	memset((char *)&server, 0, sizeof(struct sockaddr_in));
1813 1815
 	server.sin_family = AF_INET;
1814 1816
 	server.sin_port = (in_port_t)htons(tcpSocket);
... ...
@@ -1973,7 +1978,7 @@ pingServer(int serverNumber)
1973 1973
 static int
1974 1974
 findServer(void)
1975 1975
 {
1976
-	int i;
1976
+	int i, j;
1977 1977
 	struct session *session;
1978 1978
 
1979 1979
 	/*
... ...
@@ -1983,17 +1988,21 @@ findServer(void)
1983 1983
 	pthread_mutex_lock(&n_children_mutex);
1984 1984
 	assert(n_children > 0);
1985 1985
 	assert(n_children <= max_children);
1986
-	i = n_children - 1;
1986
+	i = 0;
1987
+	j = n_children - 1;
1987 1988
 	pthread_mutex_unlock(&n_children_mutex);
1988 1989
 
1989
-	session = sessions;
1990 1990
 	pthread_mutex_lock(&sstatus_mutex);
1991
-	for(; i < max_children; i++, session++)
1991
+	for(; i < max_children; i++) {
1992
+		session = &sessions[(j + i) % max_children];
1993
+		cli_dbgmsg("findServer: try server %d\n",
1994
+			(j + i) % max_children);
1992 1995
 		if(session->status == CMDSOCKET_FREE) {
1993 1996
 			session->status = CMDSOCKET_INUSE;
1994 1997
 			pthread_mutex_unlock(&sstatus_mutex);
1995 1998
 			return i;
1996 1999
 		}
2000
+	}
1997 2001
 	pthread_mutex_unlock(&sstatus_mutex);
1998 2002
 
1999 2003
 	if(pthread_cond_broadcast(&watchdog_cond) < 0)
... ...
@@ -2002,12 +2011,14 @@ findServer(void)
2002 2002
 	i = 0;
2003 2003
 	session = sessions;
2004 2004
 	pthread_mutex_lock(&sstatus_mutex);
2005
-	for(; i < max_children; i++, session++)
2005
+	for(; i < max_children; i++, session++) {
2006
+		cli_dbgmsg("findServer: try server %d\n", i);
2006 2007
 		if(session->status == CMDSOCKET_FREE) {
2007 2008
 			session->status = CMDSOCKET_INUSE;
2008 2009
 			pthread_mutex_unlock(&sstatus_mutex);
2009 2010
 			return i;
2010 2011
 		}
2012
+	}
2011 2013
 	pthread_mutex_unlock(&sstatus_mutex);
2012 2014
 
2013 2015
 	cli_warnmsg(_("No free clamd sessions\n"));
... ...
@@ -2199,9 +2210,15 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr)
2199 2199
 
2200 2200
 #ifdef	CL_DEBUG
2201 2201
 	if(debug_level >= 4) {
2202
-		if(use_syslog)
2203
-			syslog(LOG_NOTICE, _("clamfi_connect: connection from %s [%s]"), hostname, remoteIP);
2204
-		cli_dbgmsg(_("clamfi_connect: connection from %s [%s]\n"), hostname, remoteIP);
2202
+		if(hostname[0] == '[') {
2203
+			if(use_syslog)
2204
+				syslog(LOG_NOTICE, _("clamfi_connect: connection from %s"), remoteIP);
2205
+			cli_dbgmsg(_("clamfi_connect: connection from %s\n"), remoteIP);
2206
+		} else {
2207
+			if(use_syslog)
2208
+				syslog(LOG_NOTICE, _("clamfi_connect: connection from %s [%s]"), hostname, remoteIP);
2209
+			cli_dbgmsg(_("clamfi_connect: connection from %s [%s]\n"), hostname, remoteIP);
2210
+		}
2205 2211
 	}
2206 2212
 #endif
2207 2213
 
... ...
@@ -2304,14 +2321,12 @@ clamfi_envfrom(SMFICTX *ctx, char **argv)
2304 2304
 		pthread_mutex_lock(&n_children_mutex);
2305 2305
 
2306 2306
 		/*
2307
-		 * Not a while since sendmail doesn't like it if we
2307
+		 * Wait a while since sendmail doesn't like it if we
2308 2308
 		 * take too long replying. Effectively this means that
2309 2309
 		 * max_children is more of a hint than a rule
2310 2310
 		 */
2311 2311
 		if(n_children >= max_children) {
2312
-			struct timeval now;
2313 2312
 			struct timespec timeout;
2314
-			struct timezone tz;
2315 2313
 
2316 2314
 			cli_dbgmsg((dont_wait) ?
2317 2315
 					_("hit max-children limit (%u >= %u)\n") :
... ...
@@ -2343,6 +2358,9 @@ clamfi_envfrom(SMFICTX *ctx, char **argv)
2343 2343
 			 * ensure it wakes up when a child goes away
2344 2344
 			 */
2345 2345
 			if(child_timeout) {
2346
+				struct timeval now;
2347
+				struct timezone tz;
2348
+
2346 2349
 				gettimeofday(&now, &tz);
2347 2350
 				timeout.tv_sec = now.tv_sec + child_timeout;
2348 2351
 				timeout.tv_nsec = 0;
... ...
@@ -3720,6 +3738,7 @@ connect2clamd(struct privdata *privdata)
3720 3720
 			freeServer = findServer();
3721 3721
 			if(freeServer < 0)
3722 3722
 				return 0;
3723
+			assert(freeServer < max_children);
3723 3724
 #else
3724 3725
 			struct sockaddr_in server;
3725 3726
 
... ...
@@ -3732,6 +3751,7 @@ connect2clamd(struct privdata *privdata)
3732 3732
 			freeServer = findServer();
3733 3733
 			if(freeServer < 0)
3734 3734
 				return 0;
3735
+			assert(freeServer < max_children);
3735 3736
 
3736 3737
 			server.sin_addr.s_addr = serverIPs[freeServer];
3737 3738
 
... ...
@@ -3777,7 +3797,9 @@ connect2clamd(struct privdata *privdata)
3777 3777
 			cli_warnmsg("Failed sending stream to server %d (fd %d) errno %d\n",
3778 3778
 				freeServer, session->sock, errno);
3779 3779
 			if(use_syslog)
3780
-				syslog(LOG_ERR, _("failed to send STREAM command clamd"));
3780
+				syslog(LOG_ERR, _("failed to send STREAM command clamd server %d"),
3781
+					freeServer);
3782
+
3781 3783
 			return 0;
3782 3784
 		}
3783 3785
 #else
... ...
@@ -8,7 +8,7 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version: PACKAGE VERSION\n"
10 10
 "Report-Msgid-Bugs-To: bugs@clamav.net\n"
11
-"POT-Creation-Date: 2004-12-03 17:34+0000\n"
11
+"POT-Creation-Date: 2004-12-04 23:31+0000\n"
12 12
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 13
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 14
 "Language-Team: LANGUAGE <LL@li.org>\n"
... ...
@@ -16,596 +16,606 @@ msgstr ""
16 16
 "Content-Type: text/plain; charset=CHARSET\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
18 18
 
19
-#: clamav-milter.c:871
19
+#: clamav-milter.c:874
20 20
 msgid "\t--advisory\t\t-A\tFlag viruses rather than deleting them."
21 21
 msgstr ""
22 22
 
23
-#: clamav-milter.c:872
23
+#: clamav-milter.c:875
24 24
 msgid "\t--bounce\t\t-b\tSend a failure message to the sender."
25 25
 msgstr ""
26 26
 
27
-#: clamav-milter.c:873
27
+#: clamav-milter.c:876
28 28
 msgid ""
29 29
 "\t--broadcast\t\t-B [IFACE]\tBroadcast to a network manager when a virus is "
30 30
 "found."
31 31
 msgstr ""
32 32
 
33
-#: clamav-milter.c:874
33
+#: clamav-milter.c:877
34 34
 msgid "\t--config-file=FILE\t-c FILE\tRead configuration from FILE."
35 35
 msgstr ""
36 36
 
37
-#: clamav-milter.c:875
37
+#: clamav-milter.c:878
38 38
 msgid "\t--debug\t\t\t-D\tPrint debug messages."
39 39
 msgstr ""
40 40
 
41
-#: clamav-milter.c:876
41
+#: clamav-milter.c:879
42 42
 msgid ""
43 43
 "\t--dont-log-clean\t-C\tDon't add an entry to syslog that a mail is clean."
44 44
 msgstr ""
45 45
 
46
-#: clamav-milter.c:877
46
+#: clamav-milter.c:880
47 47
 msgid ""
48 48
 "\t--dont-scan-on-error\t-d\tPass e-mails through unscanned if a system error "
49 49
 "occurs."
50 50
 msgstr ""
51 51
 
52
-#: clamav-milter.c:878
52
+#: clamav-milter.c:881
53 53
 msgid "\t--dont-wait\t\t\tAsk remote end to resend if max-children exceeded."
54 54
 msgstr ""
55 55
 
56
-#: clamav-milter.c:879
56
+#: clamav-milter.c:882
57 57
 msgid "\t--from=EMAIL\t\t-a EMAIL\tError messages come from here."
58 58
 msgstr ""
59 59
 
60
-#: clamav-milter.c:880
60
+#: clamav-milter.c:883
61 61
 msgid "\t--force-scan\t\t-f\tForce scan all messages (overrides (-o and -l)."
62 62
 msgstr ""
63 63
 
64
-#: clamav-milter.c:881
64
+#: clamav-milter.c:884
65 65
 msgid "\t--help\t\t\t-h\tThis message."
66 66
 msgstr ""
67 67
 
68
-#: clamav-milter.c:882
68
+#: clamav-milter.c:885
69 69
 msgid "\t--headers\t\t-H\tInclude original message headers in the report."
70 70
 msgstr ""
71 71
 
72
-#: clamav-milter.c:883
72
+#: clamav-milter.c:886
73 73
 msgid "\t--internal\t\t-I\tUse the internal scanner."
74 74
 msgstr ""
75 75
 
76
-#: clamav-milter.c:884
76
+#: clamav-milter.c:887
77 77
 msgid "\t--local\t\t\t-l\tScan messages sent from machines on our LAN."
78 78
 msgstr ""
79 79
 
80
-#: clamav-milter.c:885
80
+#: clamav-milter.c:888
81 81
 msgid "\t--max-childen\t\t-m\tMaximum number of concurrent scans."
82 82
 msgstr ""
83 83
 
84
-#: clamav-milter.c:886
84
+#: clamav-milter.c:889
85 85
 msgid "\t--outgoing\t\t-o\tScan outgoing messages from this machine."
86 86
 msgstr ""
87 87
 
88
-#: clamav-milter.c:887
88
+#: clamav-milter.c:890
89 89
 msgid "\t--noreject\t\t-N\tDon't reject viruses, silently throw them away."
90 90
 msgstr ""
91 91
 
92
-#: clamav-milter.c:888
92
+#: clamav-milter.c:891
93 93
 msgid "\t--noxheader\t\t-n\tSuppress X-Virus-Scanned/X-Virus-Status headers."
94 94
 msgstr ""
95 95
 
96
-#: clamav-milter.c:889
96
+#: clamav-milter.c:892
97 97
 msgid "\t--pidfile=FILE\t\t-i FILE\tLocation of pidfile."
98 98
 msgstr ""
99 99
 
100
-#: clamav-milter.c:890
100
+#: clamav-milter.c:893
101 101
 msgid "\t--postmaster\t\t-p EMAIL\tPostmaster address [default=postmaster]."
102 102
 msgstr ""
103 103
 
104
-#: clamav-milter.c:891
104
+#: clamav-milter.c:894
105 105
 msgid "\t--postmaster-only\t-P\tSend warnings only to the postmaster."
106 106
 msgstr ""
107 107
 
108
-#: clamav-milter.c:892
108
+#: clamav-milter.c:895
109 109
 msgid "\t--quiet\t\t\t-q\tDon't send e-mail notifications of interceptions."
110 110
 msgstr ""
111 111
 
112
-#: clamav-milter.c:893
112
+#: clamav-milter.c:896
113 113
 msgid "\t--quarantine=USER\t-Q EMAIL\tQuanrantine e-mail account."
114 114
 msgstr ""
115 115
 
116
-#: clamav-milter.c:894
116
+#: clamav-milter.c:897
117 117
 msgid "\t--quarantine-dir=DIR\t-U DIR\tDirectory to store infected emails."
118 118
 msgstr ""
119 119
 
120
-#: clamav-milter.c:895
120
+#: clamav-milter.c:898
121 121
 msgid ""
122 122
 "\t--server=SERVER\t\t-s SERVER\tHostname/IP address of server(s) running "
123 123
 "clamd (when using TCPsocket)."
124 124
 msgstr ""
125 125
 
126
-#: clamav-milter.c:896
126
+#: clamav-milter.c:899
127 127
 msgid "\t--sign\t\t\t-S\tAdd a hard-coded signature to each scanned message."
128 128
 msgstr ""
129 129
 
130
-#: clamav-milter.c:897
130
+#: clamav-milter.c:900
131 131
 msgid "\t--signature-file=FILE\t-F FILE\tLocation of signature file."
132 132
 msgstr ""
133 133
 
134
-#: clamav-milter.c:898
134
+#: clamav-milter.c:901
135 135
 msgid "\t--template-file=FILE\t-t FILE\tLocation of e-mail template file."
136 136
 msgstr ""
137 137
 
138
-#: clamav-milter.c:899
138
+#: clamav-milter.c:902
139 139
 msgid "\t--timeout=SECS\t\t-T SECS\tTimeout waiting to childen to die."
140 140
 msgstr ""
141 141
 
142
-#: clamav-milter.c:900
142
+#: clamav-milter.c:903
143 143
 msgid "\t--version\t\t-V\tPrint the version number of this software."
144 144
 msgstr ""
145 145
 
146
-#: clamav-milter.c:902
146
+#: clamav-milter.c:905
147 147
 msgid "\t--debug-level=n\t\t-x n\tSets the debug level to 'n'."
148 148
 msgstr ""
149 149
 
150
-#: clamav-milter.c:904
150
+#: clamav-milter.c:907
151 151
 msgid ""
152 152
 "\n"
153 153
 "For more information type \"man clamav-milter\"."
154 154
 msgstr ""
155 155
 
156
-#: clamav-milter.c:905
156
+#: clamav-milter.c:908
157 157
 msgid "Report bugs to bugs@clamav.net."
158 158
 msgstr ""
159 159
 
160
-#: clamav-milter.c:1197
160
+#: clamav-milter.c:1200
161 161
 #, c-format
162 162
 msgid "%s: No socket-addr given\n"
163 163
 msgstr ""
164 164
 
165
-#: clamav-milter.c:1206
165
+#: clamav-milter.c:1209
166 166
 #, c-format
167 167
 msgid "%s: Can't parse the config file %s\n"
168 168
 msgstr ""
169 169
 
170
-#: clamav-milter.c:1245
170
+#: clamav-milter.c:1248
171 171
 #, c-format
172 172
 msgid ""
173 173
 "%s: The iface option to --broadcast is not supported on your operating "
174 174
 "system\n"
175 175
 msgstr ""
176 176
 
177
-#: clamav-milter.c:1254
177
+#: clamav-milter.c:1257
178 178
 #, c-format
179 179
 msgid "%s: Can't get information about user %s\n"
180 180
 msgstr ""
181 181
 
182
-#: clamav-milter.c:1265
182
+#: clamav-milter.c:1268
183 183
 #, c-format
184 184
 msgid "%s: AllowSupplementaryGroups: initgroups not supported.\n"
185 185
 msgstr ""
186 186
 
187
-#: clamav-milter.c:1282
187
+#: clamav-milter.c:1285
188 188
 #, c-format
189 189
 msgid "Running as user %s (UID %d, GID %d)\n"
190 190
 msgstr ""
191 191
 
192
-#: clamav-milter.c:1285
192
+#: clamav-milter.c:1288
193 193
 #, c-format
194 194
 msgid "%s: running as root is not recommended (check \"User\" in clamd.conf)\n"
195 195
 msgstr ""
196 196
 
197
-#: clamav-milter.c:1287
197
+#: clamav-milter.c:1290
198 198
 #, c-format
199 199
 msgid "%s: Only root can set an interface for --broadcast\n"
200 200
 msgstr ""
201 201
 
202
-#: clamav-milter.c:1292
202
+#: clamav-milter.c:1295
203 203
 #, c-format
204 204
 msgid "%s: Advisory mode doesn't work with quarantine mode\n"
205 205
 msgstr ""
206 206
 
207
-#: clamav-milter.c:1299
207
+#: clamav-milter.c:1302
208 208
 #, c-format
209 209
 msgid "%s: Advisory mode doesn't work with quarantine directories\n"
210 210
 msgstr ""
211 211
 
212
-#: clamav-milter.c:1315
212
+#: clamav-milter.c:1318
213 213
 #, c-format
214 214
 msgid "%s: insecure quarantine directory %s (mode 0%o)\n"
215 215
 msgstr ""
216 216
 
217
-#: clamav-milter.c:1341
217
+#: clamav-milter.c:1344
218 218
 #, c-format
219 219
 msgid "%s: ReadTimeout must not be negative in %s\n"
220 220
 msgstr ""
221 221
 
222
-#: clamav-milter.c:1349
222
+#: clamav-milter.c:1352
223 223
 #, c-format
224 224
 msgid "%s: StreamMaxLength must not be negative in %s\n"
225 225
 msgstr ""
226 226
 
227
-#: clamav-milter.c:1372
227
+#: clamav-milter.c:1375
228 228
 #, c-format
229 229
 msgid ""
230 230
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
231 231
 msgstr ""
232 232
 
233
-#: clamav-milter.c:1382
233
+#: clamav-milter.c:1385
234 234
 #, c-format
235 235
 msgid "%s: ScanMail not defined in %s\n"
236 236
 msgstr ""
237 237
 
238
-#: clamav-milter.c:1387
238
+#: clamav-milter.c:1390
239 239
 #, c-format
240 240
 msgid "%s: --max-children must be given in internal mode\n"
241 241
 msgstr ""
242 242
 
243
-#: clamav-milter.c:1391
243
+#: clamav-milter.c:1394
244 244
 #, c-format
245 245
 msgid "%s: --timeout must not be given in internal mode\n"
246 246
 msgstr ""
247 247
 
248
-#: clamav-milter.c:1403
248
+#: clamav-milter.c:1407
249 249
 #, c-format
250 250
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
251 251
 msgstr ""
252 252
 
253
-#: clamav-milter.c:1413
253
+#: clamav-milter.c:1417
254 254
 #, c-format
255 255
 msgid "The connection from sendmail to %s (%s) must not\n"
256 256
 msgstr ""
257 257
 
258
-#: clamav-milter.c:1415
258
+#: clamav-milter.c:1419
259 259
 #, c-format
260 260
 msgid "be the same as the connection to clamd (%s) in %s\n"
261 261
 msgstr ""
262 262
 
263
-#: clamav-milter.c:1425 clamav-milter.c:1448
263
+#: clamav-milter.c:1429 clamav-milter.c:1452
264 264
 #, c-format
265 265
 msgid "Can't talk to clamd server via %s\n"
266 266
 msgstr ""
267 267
 
268
-#: clamav-milter.c:1427 clamav-milter.c:1450
268
+#: clamav-milter.c:1431 clamav-milter.c:1454
269 269
 #, c-format
270 270
 msgid "Check your entry for LocalSocket in %s\n"
271 271
 msgstr ""
272 272
 
273
-#: clamav-milter.c:1461
273
+#: clamav-milter.c:1465
274 274
 msgid "Can't create a clamd session"
275 275
 msgstr ""
276 276
 
277
-#: clamav-milter.c:1478
277
+#: clamav-milter.c:1482
278 278
 #, c-format
279 279
 msgid ""
280 280
 "%s: --quarantine-dir not supported for remote scanning - use --quarantine\n"
281 281
 msgstr ""
282 282
 
283
-#: clamav-milter.c:1493
283
+#: clamav-milter.c:1497
284 284
 #, c-format
285 285
 msgid "%s: hostname %s is longer than %d characters\n"
286 286
 msgstr ""
287 287
 
288
-#: clamav-milter.c:1512
288
+#: clamav-milter.c:1516
289 289
 #, c-format
290 290
 msgid "%s: --max-children must be given in sessions mode\n"
291 291
 msgstr ""
292 292
 
293
-#: clamav-milter.c:1535
293
+#: clamav-milter.c:1539
294 294
 #, c-format
295 295
 msgid "%s: Unknown host %s\n"
296 296
 msgstr ""
297 297
 
298
-#: clamav-milter.c:1547
298
+#: clamav-milter.c:1551
299 299
 #, c-format
300 300
 msgid "Can't talk to clamd server %s on port %d\n"
301 301
 msgstr ""
302 302
 
303
-#: clamav-milter.c:1564
303
+#: clamav-milter.c:1568
304 304
 msgid "Can't find any active clamd servers\n"
305 305
 msgstr ""
306 306
 
307
-#: clamav-milter.c:1565 clamav-milter.c:1571
307
+#: clamav-milter.c:1569 clamav-milter.c:1575
308 308
 #, c-format
309 309
 msgid "Check your entry for TCPSocket in %s\n"
310 310
 msgstr ""
311 311
 
312
-#: clamav-milter.c:1570
312
+#: clamav-milter.c:1574
313 313
 msgid "Can't find any clamd servers\n"
314 314
 msgstr ""
315 315
 
316
-#: clamav-milter.c:1577
316
+#: clamav-milter.c:1581
317 317
 #, c-format
318 318
 msgid "%s: You must select server type (local/TCP) in %s\n"
319 319
 msgstr ""
320 320
 
321
-#: clamav-milter.c:1628
321
+#: clamav-milter.c:1632
322 322
 #, c-format
323 323
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
324 324
 msgstr ""
325 325
 
326
-#: clamav-milter.c:1629
326
+#: clamav-milter.c:1633
327 327
 msgid "\tso that you can see all of the messages"
328 328
 msgstr ""
329 329
 
330
-#: clamav-milter.c:1730
330
+#: clamav-milter.c:1734
331 331
 msgid "Starting clamav-milter"
332 332
 msgstr ""
333 333
 
334
-#: clamav-milter.c:1739
334
+#: clamav-milter.c:1743
335 335
 #, c-format
336 336
 msgid "Can't save PID in file %s"
337 337
 msgstr ""
338 338
 
339
-#: clamav-milter.c:1741
339
+#: clamav-milter.c:1745
340 340
 #, c-format
341 341
 msgid "Can't save PID in file %s\n"
342 342
 msgstr ""
343 343
 
344
-#: clamav-milter.c:1769
344
+#: clamav-milter.c:1773
345 345
 #, c-format
346 346
 msgid "%s: smfi_setconn failed\n"
347 347
 msgstr ""
348 348
 
349
-#: clamav-milter.c:1783
349
+#: clamav-milter.c:1786
350 350
 #, c-format
351
-msgid "Starting: %s"
351
+msgid "Starting %s"
352 352
 msgstr ""
353 353
 
354
-#: clamav-milter.c:1786
354
+#: clamav-milter.c:1789
355 355
 msgid "Debugging is on"
356 356
 msgstr ""
357 357
 
358
-#: clamav-milter.c:1840 clamav-milter.c:2084
358
+#: clamav-milter.c:1845 clamav-milter.c:2095
359 359
 #, c-format
360 360
 msgid "Check clamd server %s - it may be down\n"
361 361
 msgstr ""
362 362
 
363
-#: clamav-milter.c:1845 clamav-milter.c:2093
363
+#: clamav-milter.c:1850 clamav-milter.c:2104
364 364
 msgid "Check clamd server - it may be down\n"
365 365
 msgstr ""
366 366
 
367
-#: clamav-milter.c:2010
367
+#: clamav-milter.c:2021
368 368
 msgid "No free clamd sessions\n"
369 369
 msgstr ""
370 370
 
371
-#: clamav-milter.c:2087
371
+#: clamav-milter.c:2098
372 372
 #, c-format
373 373
 msgid "Check clamd server %s - it may be down"
374 374
 msgstr ""
375 375
 
376
-#: clamav-milter.c:2129
376
+#: clamav-milter.c:2140
377 377
 msgid "findServer: select failed"
378 378
 msgstr ""
379 379
 
380
-#: clamav-milter.c:2138
380
+#: clamav-milter.c:2149
381 381
 #, c-format
382 382
 msgid "findServer: using server %d\n"
383 383
 msgstr ""
384 384
 
385
-#: clamav-milter.c:2143
385
+#: clamav-milter.c:2154
386 386
 msgid "findServer: No response from any server\n"
387 387
 msgstr ""
388 388
 
389
-#: clamav-milter.c:2145
389
+#: clamav-milter.c:2156
390 390
 msgid "findServer: No response from any server"
391 391
 msgstr ""
392 392
 
393
-#: clamav-milter.c:2166
393
+#: clamav-milter.c:2177
394 394
 msgid "clamfi_connect: ctx is null"
395 395
 msgstr ""
396 396
 
397
-#: clamav-milter.c:2171
397
+#: clamav-milter.c:2182
398 398
 msgid "clamfi_connect: hostname is null"
399 399
 msgstr ""
400 400
 
401
-#: clamav-milter.c:2192
401
+#: clamav-milter.c:2203
402 402
 msgid "clamfi_connect: remoteIP is null"
403 403
 msgstr ""
404 404
 
405
-#: clamav-milter.c:2200
405
+#: clamav-milter.c:2212
406
+#, c-format
407
+msgid "clamfi_connect: connection from %s"
408
+msgstr ""
409
+
410
+#: clamav-milter.c:2213
411
+#, c-format
412
+msgid "clamfi_connect: connection from %s\n"
413
+msgstr ""
414
+
415
+#: clamav-milter.c:2216
406 416
 #, c-format
407 417
 msgid "clamfi_connect: connection from %s [%s]"
408 418
 msgstr ""
409 419
 
410
-#: clamav-milter.c:2201
420
+#: clamav-milter.c:2217
411 421
 #, c-format
412 422
 msgid "clamfi_connect: connection from %s [%s]\n"
413 423
 msgstr ""
414 424
 
415
-#: clamav-milter.c:2220
425
+#: clamav-milter.c:2237
416 426
 msgid "Can't get sendmail hostname"
417 427
 msgstr ""
418 428
 
419
-#: clamav-milter.c:2225
429
+#: clamav-milter.c:2242
420 430
 #, c-format
421 431
 msgid "Access Denied: Host Unknown (%s)"
422 432
 msgstr ""
423 433
 
424
-#: clamav-milter.c:2235
434
+#: clamav-milter.c:2252
425 435
 #, c-format
426 436
 msgid "Access Denied: Can't get IP address for (%s)"
427 437
 msgstr ""
428 438
 
429
-#: clamav-milter.c:2252
439
+#: clamav-milter.c:2269
430 440
 #, c-format
431 441
 msgid "Access Denied for %s[%s]"
432 442
 msgstr ""
433 443
 
434
-#: clamav-milter.c:2270
444
+#: clamav-milter.c:2287
435 445
 msgid "clamfi_connect: not scanning outgoing messages"
436 446
 msgstr ""
437 447
 
438
-#: clamav-milter.c:2271
448
+#: clamav-milter.c:2288
439 449
 msgid "clamfi_connect: not scanning outgoing messages\n"
440 450
 msgstr ""
441 451
 
442
-#: clamav-milter.c:2279
452
+#: clamav-milter.c:2296
443 453
 msgid "clamfi_connect: not scanning local messages"
444 454
 msgstr ""
445 455
 
446
-#: clamav-milter.c:2280
456
+#: clamav-milter.c:2297
447 457
 msgid "clamfi_connect: not scanning local messages\n"
448 458
 msgstr ""
449 459
 
450
-#: clamav-milter.c:2314
460
+#: clamav-milter.c:2329
451 461
 #, c-format
452 462
 msgid "hit max-children limit (%u >= %u)\n"
453 463
 msgstr ""
454 464
 
455
-#: clamav-milter.c:2315
465
+#: clamav-milter.c:2330
456 466
 #, c-format
457 467
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
458 468
 msgstr ""
459 469
 
460
-#: clamav-milter.c:2321
470
+#: clamav-milter.c:2336
461 471
 #, c-format
462 472
 msgid "hit max-children limit (%u >= %u)"
463 473
 msgstr ""
464 474
 
465
-#: clamav-milter.c:2322
475
+#: clamav-milter.c:2337
466 476
 #, c-format
467 477
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
468 478
 msgstr ""
469 479
 
470
-#: clamav-milter.c:2327
480
+#: clamav-milter.c:2342
471 481
 msgid "AV system temporarily overloaded - please try later"
472 482
 msgstr ""
473 483
 
474
-#: clamav-milter.c:2357
484
+#: clamav-milter.c:2375
475 485
 #, c-format
476 486
 msgid ">n_children = %d\n"
477 487
 msgstr ""
478 488
 
479
-#: clamav-milter.c:2363
489
+#: clamav-milter.c:2381
480 490
 msgid "Timeout waiting for a child to die"
481 491
 msgstr ""
482 492
 
483
-#: clamav-milter.c:2365
493
+#: clamav-milter.c:2383
484 494
 msgid "Timeout waiting for a child to die\n"
485 495
 msgstr ""
486 496
 
487
-#: clamav-milter.c:2475
497
+#: clamav-milter.c:2493
488 498
 #, c-format
489 499
 msgid "Failed to delete X-Virus-Status header %d"
490 500
 msgstr ""
491 501
 
492
-#: clamav-milter.c:2503
502
+#: clamav-milter.c:2521
493 503
 msgid "clamfi_eoh"
494 504
 msgstr ""
495 505
 
496
-#: clamav-milter.c:2506
506
+#: clamav-milter.c:2524
497 507
 msgid "clamfi_eoh\n"
498 508
 msgstr ""
499 509
 
500
-#: clamav-milter.c:2563
510
+#: clamav-milter.c:2581
501 511
 msgid "clamfi_eoh: ignoring whitelisted message"
502 512
 msgstr ""
503 513
 
504
-#: clamav-milter.c:2565
514
+#: clamav-milter.c:2583
505 515
 msgid "clamfi_eoh: ignoring whitelisted message\n"
506 516
 msgstr ""
507 517
 
508
-#: clamav-milter.c:2579
518
+#: clamav-milter.c:2597
509 519
 #, c-format
510 520
 msgid "clamfi_envbody: %u bytes"
511 521
 msgstr ""
512 522
 
513
-#: clamav-milter.c:2581
523
+#: clamav-milter.c:2599
514 524
 #, c-format
515 525
 msgid "clamfi_envbody: %u bytes\n"
516 526
 msgstr ""
517 527
 
518
-#: clamav-milter.c:2591 clamav-milter.c:2849
528
+#: clamav-milter.c:2609 clamav-milter.c:2867
519 529
 #, c-format
520 530
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
521 531
 msgstr ""
522 532
 
523
-#: clamav-milter.c:2595 clamav-milter.c:2852
533
+#: clamav-milter.c:2613 clamav-milter.c:2870
524 534
 msgid "Not Scanned - StreamMaxLength exceeded"
525 535
 msgstr ""
526 536
 
527
-#: clamav-milter.c:2693
537
+#: clamav-milter.c:2711
528 538
 #, c-format
529 539
 msgid "failed to send SCAN %s command to clamd"
530 540
 msgstr ""
531 541
 
532
-#: clamav-milter.c:2715
542
+#: clamav-milter.c:2733
533 543
 msgid "failed to send SCAN command to clamd"
534 544
 msgstr ""
535 545
 
536
-#: clamav-milter.c:2731
546
+#: clamav-milter.c:2749
537 547
 #, c-format
538 548
 msgid "Wating to read status from fd %d\n"
539 549
 msgstr ""
540 550
 
541
-#: clamav-milter.c:2742
551
+#: clamav-milter.c:2760
542 552
 #, c-format
543 553
 msgid "clamfi_eom: read %s"
544 554
 msgstr ""
545 555
 
546
-#: clamav-milter.c:2743
556
+#: clamav-milter.c:2761
547 557
 #, c-format
548 558
 msgid "clamfi_eom: read %s\n"
549 559
 msgstr ""
550 560
 
551
-#: clamav-milter.c:2751
561
+#: clamav-milter.c:2769
552 562
 msgid "clamfi_eom: read nothing from clamd"
553 563
 msgstr ""
554 564
 
555
-#: clamav-milter.c:2753
565
+#: clamav-milter.c:2771
556 566
 msgid "clamfi_eom: read nothing from clamd\n"
557 567
 msgstr ""
558 568
 
559
-#: clamav-milter.c:2798 clamav-milter.c:2838
569
+#: clamav-milter.c:2816 clamav-milter.c:2856
560 570
 msgid "Error determining host"
561 571
 msgstr ""
562 572
 
563
-#: clamav-milter.c:2857
573
+#: clamav-milter.c:2875
564 574
 msgid "Not Scanned"
565 575
 msgstr ""
566 576
 
567
-#: clamav-milter.c:2879
577
+#: clamav-milter.c:2897
568 578
 msgid "Infected"
569 579
 msgstr ""
570 580
 
571
-#: clamav-milter.c:2897
581
+#: clamav-milter.c:2915
572 582
 #, c-format
573 583
 msgid "Intercepted virus from %s to"
574 584
 msgstr ""
575 585
 
576
-#: clamav-milter.c:2991
586
+#: clamav-milter.c:3009
577 587
 msgid ""
578 588
 "Subject: Virus intercepted\n"
579 589
 "\n"
580 590
 msgstr ""
581 591
 
582
-#: clamav-milter.c:3013
592
+#: clamav-milter.c:3031
583 593
 msgid "A message you sent to\n"
584 594
 msgstr ""
585 595
 
586
-#: clamav-milter.c:3020
596
+#: clamav-milter.c:3038
587 597
 #, c-format
588 598
 msgid "The message %1$s sent from %2$s to\n"
589 599
 msgstr ""
590 600
 
591
-#: clamav-milter.c:3023
601
+#: clamav-milter.c:3041
592 602
 #, c-format
593 603
 msgid "A message sent from %s to\n"
594 604
 msgstr ""
595 605
 
596
-#: clamav-milter.c:3028
606
+#: clamav-milter.c:3046
597 607
 #, c-format
598 608
 msgid "contained %s and has not been delivered.\n"
599 609
 msgstr ""
600 610
 
601
-#: clamav-milter.c:3032
611
+#: clamav-milter.c:3050
602 612
 #, c-format
603 613
 msgid ""
604 614
 "\n"
605 615
 "The message in question has been quarantined as %s\n"
606 616
 msgstr ""
607 617
 
608
-#: clamav-milter.c:3035
618
+#: clamav-milter.c:3053
609 619
 #, c-format
610 620
 msgid ""
611 621
 "\n"
... ...
@@ -613,13 +623,13 @@ msgid ""
613 613
 "\n"
614 614
 msgstr ""
615 615
 
616
-#: clamav-milter.c:3038
616
+#: clamav-milter.c:3056
617 617
 msgid ""
618 618
 "For your information, the original message headers were:\n"
619 619
 "\n"
620 620
 msgstr ""
621 621
 
622
-#: clamav-milter.c:3051
622
+#: clamav-milter.c:3069
623 623
 #, c-format
624 624
 msgid ""
625 625
 "\n"
... ...
@@ -627,220 +637,225 @@ msgid ""
627 627
 "%s\t\n"
628 628
 msgstr ""
629 629
 
630
-#: clamav-milter.c:3062
630
+#: clamav-milter.c:3080
631 631
 #, c-format
632 632
 msgid "Quarantined infected mail as %s"
633 633
 msgstr ""
634 634
 
635
-#: clamav-milter.c:3086
635
+#: clamav-milter.c:3104
636 636
 #, c-format
637 637
 msgid "Can't set quarantine user %s"
638 638
 msgstr ""
639 639
 
640
-#: clamav-milter.c:3088
640
+#: clamav-milter.c:3106
641 641
 #, c-format
642 642
 msgid "Can't set quarantine user %s\n"
643 643
 msgstr ""
644 644
 
645
-#: clamav-milter.c:3101
645
+#: clamav-milter.c:3119
646 646
 #, c-format
647 647
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
648 648
 msgstr ""
649 649
 
650
-#: clamav-milter.c:3106
650
+#: clamav-milter.c:3124
651 651
 msgid "Unknown"
652 652
 msgstr ""
653 653
 
654
-#: clamav-milter.c:3108
654
+#: clamav-milter.c:3126
655 655
 #, c-format
656 656
 msgid "%s: incorrect message \"%s\" from clamd"
657 657
 msgstr ""
658 658
 
659
-#: clamav-milter.c:3114
659
+#: clamav-milter.c:3132
660 660
 msgid "Clean"
661 661
 msgstr ""
662 662
 
663
-#: clamav-milter.c:3118
663
+#: clamav-milter.c:3136
664 664
 #, c-format
665 665
 msgid "%s: clean message from %s"
666 666
 msgstr ""
667 667
 
668
-#: clamav-milter.c:3120
668
+#: clamav-milter.c:3138
669 669
 msgid "an unknown sender"
670 670
 msgstr ""
671 671
 
672
-#: clamav-milter.c:3219
672
+#: clamav-milter.c:3237
673 673
 #, c-format
674 674
 msgid "Can't remove clean file %s"
675 675
 msgstr ""
676 676
 
677
-#: clamav-milter.c:3399 clamav-milter.c:3402
677
+#: clamav-milter.c:3417 clamav-milter.c:3420
678 678
 #, c-format
679 679
 msgid "write failure (%u bytes) to %s: %s"
680 680
 msgstr ""
681 681
 
682
-#: clamav-milter.c:3416 clamav-milter.c:3419
682
+#: clamav-milter.c:3434 clamav-milter.c:3437
683 683
 #, c-format
684 684
 msgid "write failure (%u bytes) to clamd: %s"
685 685
 msgstr ""
686 686
 
687
-#: clamav-milter.c:3485
687
+#: clamav-milter.c:3503
688 688
 #, c-format
689 689
 msgid "No data received from clamd in %d seconds\n"
690 690
 msgstr ""
691 691
 
692
-#: clamav-milter.c:3507
692
+#: clamav-milter.c:3525
693 693
 #, c-format
694 694
 msgid "Can't stat %s"
695 695
 msgstr ""
696 696
 
697
-#: clamav-milter.c:3518 clamav-milter.c:3944
697
+#: clamav-milter.c:3536 clamav-milter.c:3966
698 698
 #, c-format
699 699
 msgid "Can't open %s"
700 700
 msgstr ""
701 701
 
702
-#: clamav-milter.c:3653
702
+#: clamav-milter.c:3671
703 703
 #, c-format
704 704
 msgid "mkdir %s failed"
705 705
 msgstr ""
706 706
 
707
-#: clamav-milter.c:3666
707
+#: clamav-milter.c:3684
708 708
 #, c-format
709 709
 msgid "mktemp %s failed"
710 710
 msgstr ""
711 711
 
712
-#: clamav-milter.c:3676
712
+#: clamav-milter.c:3694
713 713
 #, c-format
714 714
 msgid "Temporary quarantine file %s creation failed"
715 715
 msgstr ""
716 716
 
717
-#: clamav-milter.c:3777 clamav-milter.c:3784
717
+#: clamav-milter.c:3797
718
+#, c-format
719
+msgid "failed to send STREAM command clamd server %d"
720
+msgstr ""
721
+
722
+#: clamav-milter.c:3806
718 723
 msgid "failed to send STREAM command clamd"
719 724
 msgstr ""
720 725
 
721
-#: clamav-milter.c:3796
726
+#: clamav-milter.c:3818
722 727
 msgid "failed to create TCPSocket to talk to clamd"
723 728
 msgstr ""
724 729
 
725
-#: clamav-milter.c:3807 clamav-milter.c:3818
730
+#: clamav-milter.c:3829 clamav-milter.c:3840
726 731
 msgid "recv failed from clamd getting PORT"
727 732
 msgstr ""
728 733
 
729
-#: clamav-milter.c:3829
734
+#: clamav-milter.c:3851
730 735
 #, c-format
731 736
 msgid "Expected port information from clamd, got '%s'"
732 737
 msgstr ""
733 738
 
734
-#: clamav-milter.c:3832
739
+#: clamav-milter.c:3854
735 740
 #, c-format
736 741
 msgid "Expected port information from clamd, got '%s'\n"
737 742
 msgstr ""
738 743
 
739
-#: clamav-milter.c:3852 clamav-milter.c:3855
744
+#: clamav-milter.c:3874 clamav-milter.c:3877
740 745
 #, c-format
741 746
 msgid "Connecting to local port %d - data %d cmd %d\n"
742 747
 msgstr ""
743 748
 
744
-#: clamav-milter.c:3868 clamav-milter.c:3871
749
+#: clamav-milter.c:3890 clamav-milter.c:3893
745 750
 #, c-format
746 751
 msgid "Failed to connect to port %d given by clamd: %s"
747 752
 msgstr ""
748 753
 
749
-#: clamav-milter.c:3956
754
+#: clamav-milter.c:3978
750 755
 #, c-format
751 756
 msgid "Clamd (pid %d) seems to have died"
752 757
 msgstr ""
753 758
 
754
-#: clamav-milter.c:3982
759
+#: clamav-milter.c:4004
755 760
 #, c-format
756 761
 msgid "Can't open e-mail template file %s"
757 762
 msgstr ""
758 763
 
759
-#: clamav-milter.c:3991
764
+#: clamav-milter.c:4013
760 765
 #, c-format
761 766
 msgid "Can't stat e-mail template file %s"
762 767
 msgstr ""
763 768
 
764
-#: clamav-milter.c:4000
769
+#: clamav-milter.c:4022
765 770
 msgid "Out of memory"
766 771
 msgstr ""
767 772
 
768
-#: clamav-milter.c:4027
773
+#: clamav-milter.c:4049
769 774
 #, c-format
770 775
 msgid "%s: Unknown clamAV variable \"%c\"\n"
771 776
 msgstr ""
772 777
 
773
-#: clamav-milter.c:4038
778
+#: clamav-milter.c:4060
774 779
 #, c-format
775 780
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
776 781
 msgstr ""
777 782
 
778
-#: clamav-milter.c:4049
783
+#: clamav-milter.c:4071
779 784
 #, c-format
780 785
 msgid "%s: Unknown sendmail variable \"%s\"\n"
781 786
 msgstr ""
782 787
 
783
-#: clamav-milter.c:4115
788
+#: clamav-milter.c:4137
784 789
 #, c-format
785 790
 msgid "Can't rename %1$s to %2$s"
786 791
 msgstr ""
787 792
 
788
-#: clamav-milter.c:4139
793
+#: clamav-milter.c:4161
789 794
 #, c-format
790 795
 msgid "[Virus] %s"
791 796
 msgstr ""
792 797
 
793
-#: clamav-milter.c:4232
798
+#: clamav-milter.c:4254
794 799
 msgid ""
795 800
 "No response from any clamd server - your AV system is not scanning emails\n"
796 801
 msgstr ""
797 802
 
798
-#: clamav-milter.c:4235
803
+#: clamav-milter.c:4257
799 804
 msgid ""
800 805
 "No response from any clamd server - your AV system is not scanning emails"
801 806
 msgstr ""
802 807
 
803
-#: clamav-milter.c:4253
808
+#: clamav-milter.c:4275
804 809
 msgid "Subject: ClamAV Down\n"
805 810
 msgstr ""
806 811
 
807
-#: clamav-milter.c:4256
812
+#: clamav-milter.c:4278
808 813
 msgid ""
809 814
 "This is an automatic message\n"
810 815
 "\n"
811 816
 msgstr ""
812 817
 
813
-#: clamav-milter.c:4259
818
+#: clamav-milter.c:4281
814 819
 msgid "The clamd program cannot be contacted.\n"
815 820
 msgstr ""
816 821
 
817
-#: clamav-milter.c:4261
822
+#: clamav-milter.c:4283
818 823
 msgid "No clamd server can be contacted.\n"
819 824
 msgstr ""
820 825
 
821
-#: clamav-milter.c:4263
826
+#: clamav-milter.c:4285
822 827
 msgid "Emails may not be being scanned, please check your servers.\n"
823 828
 msgstr ""
824 829
 
825
-#: clamav-milter.c:4331
830
+#: clamav-milter.c:4353
826 831
 msgid "Loading new database"
827 832
 msgstr ""
828 833
 
829
-#: clamav-milter.c:4512
834
+#: clamav-milter.c:4534
830 835
 #, c-format
831 836
 msgid "Stopping %s"
832 837
 msgstr ""
833 838
 
834
-#: clamav-milter.c:4553
839
+#: clamav-milter.c:4575
835 840
 msgid "Stopping clamav-milter"
836 841
 msgstr ""
837 842
 
838
-#: clamav-milter.c:4656
843
+#: clamav-milter.c:4678
839 844
 #, c-format
840 845
 msgid "ClamAV: Protecting against %d viruses"
841 846
 msgstr ""
842 847
 
843
-#: clamav-milter.c:4659
848
+#: clamav-milter.c:4681
844 849
 #, c-format
845 850
 msgid "Loaded %s\n"
846 851
 msgstr ""