diff options
author | Binho <klebertarcisio@yahoo.com.br> | 2021-12-28 20:27:11 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-28 15:27:11 -0800 |
commit | 920add38113cd0f73c6eb8ec8d0cfd0d2a7ce0df (patch) | |
tree | 8284d7e34be2d20a5c1140c854abe95f21672290 | |
parent | 7d4a895c8c684c724c2cfbf383c1094e81621cc0 (diff) | |
download | nanomsg-920add38113cd0f73c6eb8ec8d0cfd0d2a7ce0df.tar.gz |
Avoiding null pointer dereference (#1062)
-rw-r--r-- | src/core/sock.c | 3 | ||||
-rw-r--r-- | src/transports/tcp/btcp.c | 2 | ||||
-rw-r--r-- | tests/ipc.c | 4 | ||||
-rw-r--r-- | tools/options.c | 2 |
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); |