You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bc...@apache.org on 2017/04/03 16:48:13 UTC
[trafficserver] branch master updated: TS-4195: double free on exit
This is an automated email from the ASF dual-hosted git repository.
bcall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 1a7c0fc TS-4195: double free on exit
1a7c0fc is described below
commit 1a7c0fc8cdf5ed48870e1507bf337fb2e711226f
Author: Zizhong Zhang <zi...@linkedin.com>
AuthorDate: Fri Mar 10 11:19:51 2017 -0800
TS-4195: double free on exit
---
iocore/eventsystem/I_EThread.h | 2 +-
iocore/eventsystem/UnixEThread.cc | 2 +-
lib/ts/signals.cc | 7 -------
proxy/Main.cc | 2 --
4 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/iocore/eventsystem/I_EThread.h b/iocore/eventsystem/I_EThread.h
index 777c759..a502c5c 100644
--- a/iocore/eventsystem/I_EThread.h
+++ b/iocore/eventsystem/I_EThread.h
@@ -53,7 +53,7 @@ enum ThreadType {
DEDICATED,
};
-extern bool shutdown_event_system;
+extern volatile bool shutdown_event_system;
/**
Event System specific type of thread.
diff --git a/iocore/eventsystem/UnixEThread.cc b/iocore/eventsystem/UnixEThread.cc
index 8206e3f..6fdc480 100644
--- a/iocore/eventsystem/UnixEThread.cc
+++ b/iocore/eventsystem/UnixEThread.cc
@@ -39,7 +39,7 @@ struct AIOCallback;
#define THREAD_MAX_HEARTBEAT_MSECONDS 60
#define NO_ETHREAD_ID -1
-bool shutdown_event_system = false;
+volatile bool shutdown_event_system = false;
EThread::EThread()
: generator((uint64_t)Thread::get_hrtime_updated() ^ (uint64_t)(uintptr_t)this),
diff --git a/lib/ts/signals.cc b/lib/ts/signals.cc
index 80f743b..3980d27 100644
--- a/lib/ts/signals.cc
+++ b/lib/ts/signals.cc
@@ -162,13 +162,7 @@ signal_format_siginfo(int signo, siginfo_t *info, const char *msg)
(void)info;
(void)signo;
-#if HAVE_PSIGINFO
- psiginfo(info, const_cast<char *>(msg));
-#elif HAVE_PSIGNAL
- psignal(signo, msg);
-#else
char buf[64];
- size_t len;
#if HAVE_STRSIGNAL
snprintf(buf, sizeof(buf), "%s: received signal %d (%s)\n", msg, signo, strsignal(signo));
@@ -178,7 +172,6 @@ signal_format_siginfo(int signo, siginfo_t *info, const char *msg)
ssize_t ignored = write(STDERR_FILENO, buf, strlen(buf));
(void)ignored; // because gcc and glibc are stupid, "(void)write(...)" doesn't suffice.
-#endif
}
void
diff --git a/proxy/Main.cc b/proxy/Main.cc
index 306f6b0..b65f563 100644
--- a/proxy/Main.cc
+++ b/proxy/Main.cc
@@ -462,8 +462,6 @@ proxy_signal_handler(int signo, siginfo_t *info, void *ctx)
shutdown_event_system = true;
sleep(1);
-
- ::exit(signo);
}
//
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].