Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
0426-tools-Terminate-on-ENOMEM-in-erl_memory.c....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0426-tools-Terminate-on-ENOMEM-in-erl_memory.c.patch of Package erlang
From 22ce7a73bf8d3d405c4e68b05aa674b28327a307 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Wed, 10 Feb 2021 17:57:20 +0100 Subject: [PATCH 26/34] tools: Terminate on ENOMEM in erl_memory.c CodeChecker complains about deref NULL pointer. I see no point in trying to salvage ENOMEM in this case. --- lib/tools/c_src/erl_memory.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/tools/c_src/erl_memory.c b/lib/tools/c_src/erl_memory.c index 2726d7b81e..f247e6568d 100644 --- a/lib/tools/c_src/erl_memory.c +++ b/lib/tools/c_src/erl_memory.c @@ -464,10 +464,10 @@ enqueue(em_state *state, em_buf_queue *queue, size_t min_size) buf = (em_buffer *) (*state->alloc)(sizeof(em_buffer) + (sizeof(char) * (bsize-EM_DEFAULT_BUF_SZ))); - if (buf) { - buf->size = bsize; - reset_buffer(buf, bsize); - } + if (!buf) + error(ENOMEM); + buf->size = bsize; + reset_buffer(buf, bsize); } if (queue->last) { @@ -568,15 +568,10 @@ get_next_write_area(em_area *area, em_state *state, em_buf_queue *queue, ? queue->last : enqueue(state, queue, size)); - if (buf) { - ASSERT(buf->end - buf->data_end >= size); - area->ptr = buf->data_end; - area->size = buf->end - buf->data_end; - } - else { - area->ptr = NULL; - area->size = 0; - } + ASSERT(buf); + ASSERT(buf->end - buf->data_end >= size); + area->ptr = buf->data_end; + area->size = buf->end - buf->data_end; if (queue->tot_buf_size > queue->max_buf_size) { fprintf(stderr, -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor