From 3943a632fccfb66c72d4f099ece32356c15bd6b3 Mon Sep 17 00:00:00 2001
From: Sam Roberts <vieuxtech@gmail.com>
Date: Mon, 3 Dec 2018 09:07:53 -0800
Subject: [PATCH 1/2] src: fix warning for potential snprintf truncation

gcc 8+ recognizes that space has not been left for the pid and that the
return value of snprintf() isn't checked. Leave a little space for the
pid to prevent `-Wformat-truncation`.
---
 src/util.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/util.cc b/src/util.cc
index 9f0b8ebc9d7596..ba30b23770b52e 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -116,7 +116,8 @@ std::string GetHumanReadableProcessName() {
 }
 
 void GetHumanReadableProcessName(char (*name)[1024]) {
-  char title[1024] = "Node.js";
+  // Leave room after title for pid, which can be up to 20 digits for 64 bit.
+  char title[1000] = "Node.js";
   uv_get_process_title(title, sizeof(title));
   snprintf(*name, sizeof(*name), "%s[%d]", title, uv_os_getpid());
 }

From e55511ed660e6d259944992eb6e159ae49f40b3b Mon Sep 17 00:00:00 2001
From: Sam Roberts <vieuxtech@gmail.com>
Date: Mon, 3 Dec 2018 09:09:59 -0800
Subject: [PATCH 2/2] src: do not alias new and old signal masks

In recent gcc, -Wrestrict warns when an argument passed to a
restrict-qualified parameter aliases with another argument.
---
 src/inspector_agent.cc | 4 +++-
 src/node_watchdog.cc   | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc
index 5e53201c42d5c2..21319abca7d1f5 100644
--- a/src/inspector_agent.cc
+++ b/src/inspector_agent.cc
@@ -110,7 +110,9 @@ static int StartDebugSignalHandler() {
   sigset_t sigmask;
   // Mask all signals.
   sigfillset(&sigmask);
-  CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &sigmask));
+  sigset_t savemask;
+  CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &savemask));
+  sigmask = savemask;
   pthread_t thread;
   const int err = pthread_create(&thread, &attr,
                                  StartIoThreadMain, nullptr);
diff --git a/src/node_watchdog.cc b/src/node_watchdog.cc
index b8665dc1be225d..9ef7bafeded44f 100644
--- a/src/node_watchdog.cc
+++ b/src/node_watchdog.cc
@@ -187,7 +187,9 @@ int SigintWatchdogHelper::Start() {
 
   sigset_t sigmask;
   sigfillset(&sigmask);
-  CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &sigmask));
+  sigset_t savemask;
+  CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &savemask));
+  sigmask = savemask;
   int ret = pthread_create(&thread_, nullptr, RunSigintWatchdog, nullptr);
   CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, nullptr));
   if (ret != 0) {