author | Tomas Klacko <tomas.klacko@oracle.com> |
Fri, 09 Oct 2015 03:26:04 -0700 | |
branch | s11u3-sru |
changeset 4931 | d1cee1a4499d |
child 6073 | 99c2bf34d78a |
permissions | -rw-r--r-- |
4931
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
1 |
http://lists.research.att.com/pipermail/ast-developers/2015q3.txt |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
2 |
Message-ID: <[email protected]> |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
3 |
|
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
4 |
diff --git a/src/cmd/ksh93/bltins/cd_pwd.c b/src/cmd/ksh93/bltins/cd_pwd.c |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
5 |
index 0735be9..ed544bf 100644 |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
6 |
--- a/src/cmd/ksh93/bltins/cd_pwd.c |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
7 |
+++ b/src/cmd/ksh93/bltins/cd_pwd.c |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
8 |
@@ -191,7 +191,7 @@ success: |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
9 |
if(*dir != '/') |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
10 |
return(0); |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
11 |
nv_putval(opwdnod,oldpwd,NV_RDONLY); |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
12 |
- if(oldpwd) |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
13 |
+ if(oldpwd && (oldpwd!=e_dot)) |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
14 |
free(oldpwd); |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
15 |
flag = strlen(dir); |
d1cee1a4499d
21547336 sudo/cd crashes ksh93 because of free(e_dot) in b_cd()
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff
changeset
|
16 |
/* delete trailing '/' */ |