aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/mk/main.c2
-rw-r--r--src/cmd/mk/symtab.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/cmd/mk/main.c b/src/cmd/mk/main.c
index 645eb7ae..28e50c01 100644
--- a/src/cmd/mk/main.c
+++ b/src/cmd/mk/main.c
@@ -39,7 +39,6 @@ main(int argc, char **argv)
* instead of sharing them
*/
- initshell();
Binit(&bout, 1, OWRITE);
buf = newbuf();
whatif = 0;
@@ -120,6 +119,7 @@ main(int argc, char **argv)
iflag = 1;
usage();
syminit();
+ initshell();
initenv();
usage();
diff --git a/src/cmd/mk/symtab.c b/src/cmd/mk/symtab.c
index 6f7b8886..06a4d146 100644
--- a/src/cmd/mk/symtab.c
+++ b/src/cmd/mk/symtab.c
@@ -7,11 +7,13 @@ static Symtab *hash[NHASH];
void
syminit(void)
{
- Symtab **s, *ss;
+ Symtab **s, *ss, *next;
for(s = hash; s < &hash[NHASH]; s++){
- for(ss = *s; ss; ss = ss->next)
+ for(ss = *s; ss; ss = next){
+ next = ss->next;
free((char *)ss);
+ }
*s = 0;
}
}