From: Mike Stepanek (mstepane) Date: Wed, 14 Nov 2018 20:22:24 +0000 (-0500) Subject: Merge pull request #1431 in SNORT/snort3 from ~PSHINDE2/snort3:thread_safe_strerror... X-Git-Tag: 3.0.0-250~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24e47271841356502adcdc91ac810fcd635b568b;p=thirdparty%2Fsnort3.git Merge pull request #1431 in SNORT/snort3 from ~PSHINDE2/snort3:thread_safe_strerror to master Squashed commit of the following: commit 577090feb8bd6b33e5031b9c3dfaffd7857e1d84 Author: Pratik Shinde Date: Mon Nov 12 11:13:05 2018 -0500 loggers: Use thread safe strerror_r() instead of strerror() --- diff --git a/daqs/daq_file.c b/daqs/daq_file.c index 92f9093cf..022039c0f 100644 --- a/daqs/daq_file.c +++ b/daqs/daq_file.c @@ -71,8 +71,11 @@ static int file_setup(FileImpl* impl) } else if ( (impl->fid = open(impl->name, O_RDONLY|O_NONBLOCK)) < 0 ) { - DPE(impl->error, "%s: can't open file (%s)\n", - DAQ_NAME, strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + DPE(impl->error, "%s: can't open file (%s)\n", DAQ_NAME, error_msg); + else + DPE(impl->error, "%s: can't open file: %d\n", DAQ_NAME, errno); return -1; } impl->start = 1; @@ -106,8 +109,13 @@ static int file_read(FileImpl* impl) { if (errno != EINTR) { - DPE(impl->error, "%s: can't read from file (%s)\n", - DAQ_NAME, strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + DPE(impl->error, "%s: can't read from file (%s)\n", + DAQ_NAME, error_msg); + else + DPE(impl->error, "%s: can't read from file: %d\n", + DAQ_NAME, errno); } return DAQ_ERROR; } diff --git a/daqs/daq_hext.c b/daqs/daq_hext.c index b9524e227..f050db46e 100644 --- a/daqs/daq_hext.c +++ b/daqs/daq_hext.c @@ -471,8 +471,13 @@ static int hext_setup(HextImpl* impl) } else if ( !(impl->fyle = fopen(impl->name, "r")) ) { - DPE(impl->error, "%s: can't open file (%s)\n", - DAQ_NAME, strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + DPE(impl->error, "%s: can't open file (%s)\n", + DAQ_NAME, error_msg); + else + DPE(impl->error, "%s: can't open file: %d\n", + DAQ_NAME, errno); return -1; } parse_host("192.168.1.2 12345", &impl->cfg.src_addr, &impl->cfg.src_port); @@ -523,8 +528,13 @@ static int hext_read(HextImpl* impl) { if (errno != EINTR) { - DPE(impl->error, "%s: can't read from file (%s)\n", - DAQ_NAME, strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + DPE(impl->error, "%s: can't read from file (%s)\n", + DAQ_NAME, error_msg); + else + DPE(impl->error, "%s: can't read from file: %d\n", + DAQ_NAME, errno); } return DAQ_ERROR; } diff --git a/src/connectors/tcp_connector/tcp_connector.cc b/src/connectors/tcp_connector/tcp_connector.cc index a20c0fd02..d7bc95a37 100644 --- a/src/connectors/tcp_connector/tcp_connector.cc +++ b/src/connectors/tcp_connector/tcp_connector.cc @@ -166,7 +166,14 @@ void TcpConnector::process_receive() if (rval == -1) { if (errno != EINTR) - ErrorMessage("TcpC Input Thread: Error polling on socket %d: %s (%d)\n", pfds[0].fd, strerror(errno), errno); + { + + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + ErrorMessage("TcpC Input Thread: Error polling on socket %d: %s\n", pfds[0].fd, error_msg); + else + ErrorMessage("TcpC Input Thread: Error polling on socket %d: (%d)\n", pfds[0].fd, errno); + } return; } else if ((pfds[0].revents & (POLLHUP|POLLERR|POLLNVAL)) != 0) @@ -390,13 +397,21 @@ static TcpConnector* tcp_connector_tinit_answer(TcpConnectorConfig* cfg, const c if ( listen(sfd, 10) < 0 ) { - ErrorMessage("listen() failure: %s\n", strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + ErrorMessage("listen() failure: %s\n", error_msg); + else + ErrorMessage("listen() failure: %d\n", errno); return nullptr; } if ( (peer_sfd = accept(sfd, nullptr, nullptr )) < 0 ) { - ErrorMessage("accept() failure: %s\n", strerror(errno)); + char error_msg[1024] = {0}; + if (strerror_r(errno, error_msg, sizeof(error_msg)) == 0) + ErrorMessage("accept() failure: %s\n", error_msg); + else + ErrorMessage("accept() failure: %d\n", errno); return nullptr; }