[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_1_BRANCH: kdelibs/kio/kio [POSSIBLY UNSAFE]
From:       Waldo Bastian <bastian () kde ! org>
Date:       2003-01-31 23:10:14
[Download RAW message or body]

CVS commit by waba: 

Die slaves, die!! *little buggers* (backport)


  M +27 -21    slavebase.cpp   1.138.2.1 [POSSIBLY UNSAFE: printf]


--- kdelibs/kio/kio/slavebase.cpp  #1.138:1.138.2.1
@@ -161,31 +161,35 @@ SlaveBase::SlaveBase( const QCString &pr
 {
     if (!getenv("KDE_DEBUG"))
+    {
         KCrash::setCrashHandler( sigsegv_handler );
-    signal( SIGPIPE, sigpipe_handler );
-
-   signal(SIGINT,&genericsig_handler);
-        signal(SIGQUIT,&genericsig_handler);
-        signal(SIGILL,&genericsig_handler);
-        signal(SIGTRAP,&genericsig_handler);
-        signal(SIGABRT,&genericsig_handler);
-        signal(SIGBUS,&genericsig_handler);
-        signal(SIGALRM,&genericsig_handler);
-        signal(SIGTERM,&genericsig_handler);
-        signal(SIGFPE,&genericsig_handler);
+        signal(SIGILL,&sigsegv_handler);
+        signal(SIGTRAP,&sigsegv_handler);
+        signal(SIGABRT,&sigsegv_handler);
+        signal(SIGBUS,&sigsegv_handler);
+        signal(SIGALRM,&sigsegv_handler);
+        signal(SIGFPE,&sigsegv_handler);
 #ifdef SIGPOLL
-   signal(SIGPOLL, &genericsig_handler);
+        signal(SIGPOLL, &sigsegv_handler);
 #endif
 #ifdef SIGSYS
-   signal(SIGSYS, &genericsig_handler);
+        signal(SIGSYS, &sigsegv_handler);
 #endif
 #ifdef SIGVTALRM
-   signal(SIGVTALRM, &genericsig_handler);
+        signal(SIGVTALRM, &sigsegv_handler);
 #endif
 #ifdef SIGXCPU
-   signal(SIGXCPU, &genericsig_handler);
+        signal(SIGXCPU, &sigsegv_handler);
 #endif
 #ifdef SIGXFSZ
-   signal(SIGXFSZ, &genericsig_handler);
+        signal(SIGXFSZ, &sigsegv_handler);
 #endif
+    }
+        
+    signal( SIGPIPE, sigpipe_handler );
+
+    signal(SIGINT,&genericsig_handler);
+    signal(SIGQUIT,&genericsig_handler);
+    signal(SIGTERM,&genericsig_handler);
+
    globalSlave=this;
 
@@ -658,10 +662,12 @@ void SlaveBase::delCachedAuthentication(
 }
 
-void SlaveBase::sigsegv_handler (int)
+void SlaveBase::sigsegv_handler(int sig)
 {
-    signal(SIGSEGV,SIG_IGN);
+    signal(sig,SIG_DFL); // Next one kills
     // Debug and printf should be avoided because they might
     // call malloc.. and get in a nice recursive malloc loop
-    write(2, "kioslave : ###############SEG FAULT#############\n", 49);
+    char buffer[80];
+    snprintf(buffer, sizeof(buffer), "kioslave: ####### CRASH ###### pid = %d signal \
= %d\n", getpid(), sig); +    write(2, buffer, strlen(buffer));
     ::exit(1);
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic