Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
2061-erts-Fix-error-case-in-erlang-display.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2061-erts-Fix-error-case-in-erlang-display.patch of Package erlang
From 5968a7b6d5c668f61e07d1d58503f01f007df213 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Tue, 8 Nov 2022 17:35:47 +0100 Subject: [PATCH 1/3] erts: Fix error case in erlang:display( ,<<...>>) Incorrect erts_free in error case causing havoc. --- erts/emulator/beam/bif.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c index 4aaf4b4649..60a7bc69ce 100644 --- a/erts/emulator/beam/bif.c +++ b/erts/emulator/beam/bif.c @@ -4211,6 +4211,11 @@ BIF_RETTYPE display_string_2(BIF_ALIST_2) #if defined(HAVE_SYS_IOCTL_H) && defined(TIOCSTI) else if (ERTS_IS_ATOM_STR("stdin", BIF_ARG_1)) { fd = open("/proc/self/fd/0",0); + if (fd < 0) { + fprintf(stderr,"failed to open %s (%s)\r\n", "/proc/self/fd/0", + strerror(errno)); + goto error; + } } #endif #endif @@ -4275,7 +4280,8 @@ error: { char *errnostr = erl_errno_id(errno); #endif BIF_P->fvalue = am_atom_put(errnostr, strlen(errnostr)); - erts_free(ERTS_ALC_T_TMP, (void *) str); + if (temp_alloc) + erts_free(ERTS_ALC_T_TMP, (void *) temp_alloc); BIF_ERROR(p, BADARG | EXF_HAS_EXT_INFO); } } -- 2.35.3
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