[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kio/kio [POSSIBLY UNSAFE]
From: Waldo Bastian <bastian () kde ! org>
Date: 2003-01-31 23:03:07
[Download RAW message or body]
CVS commit by waba:
Die slaves, die!!
M +27 -21 slavebase.cpp 1.142 [POSSIBLY UNSAFE: printf]
--- kdelibs/kio/kio/slavebase.cpp #1.141:1.142
@@ -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