summaryrefslogtreecommitdiff
path: root/sys/src/cmd/mk
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-06-01 18:31:21 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-06-01 18:31:21 +0200
commitb878450725de85dc874f42bc9de4ce1d5087f900 (patch)
treeadb8c6c416e0ccb930989ab4aa8e8ffb117acc04 /sys/src/cmd/mk
parent68571320fa2ba4f993199370d60dc4dbd114bea8 (diff)
mk: remove buggy and unneeded syminit() function (thanks qurstuv)
syminit() attemts to reset the symbol table by freeing all the hash table entries, tho the code is buggy having a obviously use after free bug. as syminit() is only called once in main when it does not contain any symbols, the bug never occured. removing the unneccesary code alltogether.
Diffstat (limited to 'sys/src/cmd/mk')
-rw-r--r--sys/src/cmd/mk/fns.h1
-rw-r--r--sys/src/cmd/mk/main.c1
-rw-r--r--sys/src/cmd/mk/symtab.c12
3 files changed, 0 insertions, 14 deletions
diff --git a/sys/src/cmd/mk/fns.h b/sys/src/cmd/mk/fns.h
index e25d90c1c..ff43ba574 100644
--- a/sys/src/cmd/mk/fns.h
+++ b/sys/src/cmd/mk/fns.h
@@ -65,7 +65,6 @@ void shprint(char*, Envy*, Bufblock*);
Word *stow(char*);
void subst(char*, char*, char*, int);
void symdel(char*, int);
-void syminit(void);
Symtab *symlook(char*, int, void*);
void symstat(void);
void symtraverse(int, void(*)(Symtab*));
diff --git a/sys/src/cmd/mk/main.c b/sys/src/cmd/mk/main.c
index 08bb3ab26..a81e83753 100644
--- a/sys/src/cmd/mk/main.c
+++ b/sys/src/cmd/mk/main.c
@@ -119,7 +119,6 @@ main(int argc, char **argv)
if(aflag)
iflag = 1;
usage();
- syminit();
initenv();
usage();
diff --git a/sys/src/cmd/mk/symtab.c b/sys/src/cmd/mk/symtab.c
index 57129ae67..dc47f1669 100644
--- a/sys/src/cmd/mk/symtab.c
+++ b/sys/src/cmd/mk/symtab.c
@@ -4,18 +4,6 @@
#define HASHMUL 79L /* this is a good value */
static Symtab *hash[NHASH];
-void
-syminit(void)
-{
- Symtab **s, *ss;
-
- for(s = hash; s < &hash[NHASH]; s++){
- for(ss = *s; ss; ss = ss->next)
- free((char *)ss);
- *s = 0;
- }
-}
-
Symtab *
symlook(char *sym, int space, void *install)
{