Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Maintenance:12.2_ArchPorts
ksh
ksh93-vmleak.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ksh93-vmleak.dif of Package ksh
--- src/cmd/ksh93/sh/init.c +++ src/cmd/ksh93/sh/init.c 2012-03-14 12:40:34.986162029 +0000 @@ -508,24 +508,26 @@ static void put_cdpath(register Namval_t static void put_ifs(register Namval_t* np,const char *val,int flags,Namfun_t *fp) { register struct ifs *ip = (struct ifs*)fp; + Namfun_t *xp; ip->ifsnp = 0; - if(!val) - { - fp = nv_stack(np, NIL(Namfun_t*)); - if(fp && !fp->nofree) - { - free((void*)fp); - fp = 0; - } - } - if(val != np->nvalue.cp) - nv_putv(np, val, flags, fp); - if(!val) + if(val) { - if(fp) - fp->next = np->nvfun; - np->nvfun = fp; + if(val != np->nvalue.cp) + nv_putv(np, val, flags, fp); + return; } + if((xp = nv_stack(np, NIL(Namfun_t*))) != fp) + sfprintf(sfstderr, "BUG in %s:%s(%d) xp(%p) != fp(%p)\n", + __FILE__, __FUNCTION__, __LINE__, xp, fp); + if(fp && !fp->nofree) + { + free((void*)fp); + fp = NIL(Namfun_t*); + } + nv_putv(np, NIL(char*), flags, fp); + if(fp) + fp->next = np->nvfun; + np->nvfun = fp; } /*
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