Browse code

Fix CID 10770

Shawn Webb authored on 2013/02/16 00:33:45
Showing 1 changed files
... ...
@@ -148,7 +148,6 @@ static void nullify(SMFICTX *ctx, struct CLAMFI *cf, enum CFWHAT closewhat) {
148 148
 	free(cf->recipients);
149 149
     }
150 150
     smfi_setpriv(ctx, NULL);
151
-    free(cf);
152 151
 }
153 152
 
154 153
 
... ...
@@ -225,6 +224,7 @@ sfsistat clamfi_header(SMFICTX *ctx, char *headerf, char *headerv) {
225 225
     if(!cf->totsz && cf->all_whitelisted) {
226 226
 	logg("*Skipping scan (all destinations whitelisted)\n");
227 227
 	nullify(ctx, cf, CF_NONE);
228
+    free(cf);
228 229
 	return SMFIS_ACCEPT;
229 230
     }
230 231
 
... ...
@@ -244,18 +244,18 @@ sfsistat clamfi_header(SMFICTX *ctx, char *headerf, char *headerv) {
244 244
 	if(!strcasecmp(headerf, "X-Virus-Status")) cf->status_count++;
245 245
     }
246 246
 
247
-    if((ret = sendchunk(cf, (unsigned char *)headerf, strlen(headerf), ctx)) != SMFIS_CONTINUE)
248
-	return ret;
249
-    if (!(cf))
250
-        return SMFIS_CONTINUE;
251
-    if((ret = sendchunk(cf, (unsigned char *)": ", 2, ctx)) != SMFIS_CONTINUE)
252
-	return ret;
253
-    if (!(cf))
254
-        return SMFIS_CONTINUE;
255
-    if(headerv && (ret = sendchunk(cf, (unsigned char *)headerv, strlen(headerv), ctx)) != SMFIS_CONTINUE)
256
-	return ret;
257
-    if (!(cf))
258
-        return SMFIS_CONTINUE;
247
+    if((ret = sendchunk(cf, (unsigned char *)headerf, strlen(headerf), ctx)) != SMFIS_CONTINUE) {
248
+        free(cf);
249
+        return ret;
250
+    }
251
+    if((ret = sendchunk(cf, (unsigned char *)": ", 2, ctx)) != SMFIS_CONTINUE) {
252
+        free(cf);
253
+        return ret;
254
+    }
255
+    if(headerv && (ret = sendchunk(cf, (unsigned char *)headerv, strlen(headerv), ctx)) != SMFIS_CONTINUE) {
256
+        free(cf);
257
+        return ret;
258
+    }
259 259
     return sendchunk(cf, (unsigned char *)"\r\n", 2, ctx);
260 260
 }
261 261