Blame SPECS/ksh-20120801-subshell-leak.patch
|
Packit |
992a25 |
diff --git a/src/cmd/ksh93/sh/path.c b/src/cmd/ksh93/sh/path.c
|
|
Packit |
992a25 |
index d723987..9965bf5 100644
|
|
Packit |
992a25 |
--- a/src/cmd/ksh93/sh/path.c
|
|
Packit |
992a25 |
+++ b/src/cmd/ksh93/sh/path.c
|
|
Packit |
992a25 |
@@ -1791,8 +1791,12 @@ void path_alias(register Namval_t *np,register Pathcomp_t *pp)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
struct stat statb;
|
|
Packit |
992a25 |
char *sp;
|
|
Packit |
992a25 |
+ Pathcomp_t *old = 0;
|
|
Packit |
992a25 |
nv_offattr(np,NV_NOPRINT);
|
|
Packit |
992a25 |
nv_stack(np,&talias_init);
|
|
Packit |
992a25 |
+ old = (Pathcomp_t*)np->nvalue.cp;
|
|
Packit |
992a25 |
+ if (old && (--old->refcount <= 0))
|
|
Packit |
992a25 |
+ free((void*)old);
|
|
Packit |
992a25 |
np->nvalue.cp = (char*)pp;
|
|
Packit |
992a25 |
pp->refcount++;
|
|
Packit |
992a25 |
nv_setattr(np,NV_TAGGED|NV_NOFREE);
|
|
Packit |
992a25 |
--
|
|
Packit |
992a25 |
2.9.3
|
|
Packit |
992a25 |
|