Browse code

intercept but ignore SIGPIPE, FreeBSD barfs

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

Trog authored on 2004/03/02 21:58:04
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Tue Mar  2 13:04:15 GMT 2004 (trog)
2
+-----------------------------------
3
+  * clamd: intercept but ignore SIGPIPE, FreeBSD barfs
4
+
1 5
 Tue Mar  2 09:35:39 CET 2004 (tk)
2 6
 ---------------------------------
3 7
   * clamd: removed x86 dazuko object files (thanks to Fajar A. Nugraha
... ...
@@ -90,8 +90,6 @@ void scanner_thread(void *arg)
90 90
 
91 91
 void sighandler_th(int sig)
92 92
 {
93
-	//time_t currtime;
94
-
95 93
     switch(sig) {
96 94
 	case SIGINT:
97 95
 	case SIGTERM:
... ...
@@ -106,6 +104,9 @@ void sighandler_th(int sig)
106 106
 	case SIGHUP:
107 107
 	    sighup = 1;
108 108
 	    break;
109
+
110
+	default:
111
+	    break; /* Take no action on other signals - e.g. SIGPIPE */
109 112
     }
110 113
 }
111 114
 
... ...
@@ -343,6 +344,7 @@ int acceptloop_th(int socketd, struct cl_node *root, const struct cfgstruct *cop
343 343
     sigdelset(&sigset, SIGTERM);
344 344
     sigdelset(&sigset, SIGSEGV);
345 345
     sigdelset(&sigset, SIGHUP);
346
+    sigdelset(&sigset, SIGPIPE);
346 347
     sigprocmask(SIG_SETMASK, &sigset, NULL);
347 348
  
348 349
     /* SIGINT, SIGTERM, SIGSEGV */
... ...
@@ -351,14 +353,15 @@ int acceptloop_th(int socketd, struct cl_node *root, const struct cfgstruct *cop
351 351
     sigaddset(&sigact.sa_mask, SIGINT);
352 352
     sigaddset(&sigact.sa_mask, SIGTERM);
353 353
     sigaddset(&sigact.sa_mask, SIGHUP);
354
+    sigaddset(&sigact.sa_mask, SIGPIPE);
354 355
     sigaction(SIGINT, &sigact, NULL);
355 356
     sigaction(SIGTERM, &sigact, NULL);
356
-
357
+    sigaction(SIGHUP, &sigact, NULL);
358
+    sigaction(SIGPIPE, &sigact, NULL);
359
+    
357 360
     if(!debug_mode)
358 361
 	sigaction(SIGSEGV, &sigact, NULL);
359 362
 
360
-    sigaction(SIGHUP, &sigact, NULL);
361
-
362 363
 #if defined(C_BIGSTACK) || defined(C_BSD)
363 364
     /*
364 365
      * njh@bandsman.co.uk: