summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBinho <klebertarcisio@yahoo.com.br>2021-12-28 20:27:11 -0300
committerGitHub <noreply@github.com>2021-12-28 15:27:11 -0800
commit920add38113cd0f73c6eb8ec8d0cfd0d2a7ce0df (patch)
tree8284d7e34be2d20a5c1140c854abe95f21672290
parent7d4a895c8c684c724c2cfbf383c1094e81621cc0 (diff)
downloadnanomsg-920add38113cd0f73c6eb8ec8d0cfd0d2a7ce0df.tar.gz
Avoiding null pointer dereference (#1062)
-rw-r--r--src/core/sock.c3
-rw-r--r--src/transports/tcp/btcp.c2
-rw-r--r--tests/ipc.c4
-rw-r--r--tools/options.c2
4 files changed, 10 insertions, 1 deletions
diff --git a/src/core/sock.c b/src/core/sock.c
index 8348d30..cac05da 100644
--- a/src/core/sock.c
+++ b/src/core/sock.c
@@ -503,6 +503,9 @@ int nn_sock_add_ep (struct nn_sock *self, const struct nn_transport *transport,
/* Instantiate the endpoint. */
ep = nn_alloc (sizeof (struct nn_ep), "endpoint");
+ if (!ep) {
+ return -ENOMEM;
+ }
rc = nn_ep_init (ep, NN_SOCK_SRC_EP, self, self->eid, transport,
bind, addr);
if (nn_slow (rc < 0)) {
diff --git a/src/transports/tcp/btcp.c b/src/transports/tcp/btcp.c
index 58e6d3e..89423e5 100644
--- a/src/transports/tcp/btcp.c
+++ b/src/transports/tcp/btcp.c
@@ -113,8 +113,8 @@ int nn_btcp_create (struct nn_ep *ep)
/* Allocate the new endpoint object. */
self = nn_alloc (sizeof (struct nn_btcp), "btcp");
- self->ep = ep;
alloc_assert (self);
+ self->ep = ep;
nn_ep_tran_setup (ep, &nn_btcp_ep_ops, self);
addr = nn_ep_getaddr (ep);
diff --git a/tests/ipc.c b/tests/ipc.c
index ea41dc0..b6e0407 100644
--- a/tests/ipc.c
+++ b/tests/ipc.c
@@ -81,6 +81,10 @@ int main ()
/* Send something large enough to trigger overlapped I/O on Windows. */
size = 10000;
buf = malloc (size);
+ if (!buf){
+ fprintf (stderr, "Out of memory");
+ exit(1);
+ }
for (i = 0; i < size; ++i) {
buf[i] = 48 + i % 10;
}
diff --git a/tools/options.c b/tools/options.c
index 1ddf626..377a08c 100644
--- a/tools/options.c
+++ b/tools/options.c
@@ -454,6 +454,8 @@ static void nn_process_option (struct nn_parse_context *ctx,
case NN_OPT_LIST_APPEND_FMT:
data_buf = strlen (argument) + strlen (opt->pointer);
data = malloc (data_buf);
+ if (!data)
+ nn_memory_error (ctx);
#if defined NN_HAVE_WINDOWS
data_len = _snprintf_s (data, data_buf, _TRUNCATE, opt->pointer,
argument);