Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
powerpc-utils.1660
powerpc-utils.bug-945968_allocate-workarea-memo...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File powerpc-utils.bug-945968_allocate-workarea-memory-instead-of-using-stac.patch of Package powerpc-utils.1660
From 96a83ab8b84576517a28bc8f4d8e684e6c86befd Mon Sep 17 00:00:00 2001 From: Nathan Fontenot <nfont@linux.vnet.ibm.com> Date: Wed, 2 Sep 2015 10:36:25 -0400 Subject: [PATCH] drmgr: Allocate workarea memory instead of using stack The configure_connector() routine declares a 4K buffer on the stack, this is causing odd behaviors in drmgr such as segfaults in libc malloc code. The workarea should be malloc()'ed instead of being on the stack. Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> --- src/drmgr/rtas_calls.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/drmgr/rtas_calls.c b/src/drmgr/rtas_calls.c index b7b5b82..e312260 100644 --- a/src/drmgr/rtas_calls.c +++ b/src/drmgr/rtas_calls.c @@ -263,7 +263,7 @@ set_indicator_error(int error) struct of_node * configure_connector(int index) { - char workarea[WORK_SIZE]; + char *workarea; struct of_node *node; struct of_node *first_node = NULL; struct of_node *last_node = NULL; /* Last node processed */ @@ -274,8 +274,12 @@ configure_connector(int index) say(DEBUG, "Configuring connector for drc index %x\n", index); + workarea = zalloc(WORK_SIZE); + if (!workarea) + return NULL; + /* initialize work area and args structure */ - work_int = (int *) &workarea[0]; + work_int = (int *)workarea; work_int[0] = htobe32(index); work_int[1] = 0; @@ -397,6 +401,7 @@ configure_connector(int index) } } + free(workarea); return first_node; } -- 1.8.5.6
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