summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-02-03 01:19:19 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2021-02-03 01:19:19 +0100
commit01ab07ef729a2dbade38906f4acf2827ea327952 (patch)
tree8501b3cf60ee7953d3ad8865686167f23b9db04a
parent3c1022a3deee758ab1cac307a1b0b46e4a5d0d52 (diff)
downloadplan9front-01ab07ef729a2dbade38906f4acf2827ea327952.tar.xz
acme: fix use after free in warning() call (thanks igor)
-rw-r--r--sys/src/cmd/acme/wind.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/src/cmd/acme/wind.c b/sys/src/cmd/acme/wind.c
index fc7652234..c49ce27f8 100644
--- a/sys/src/cmd/acme/wind.c
+++ b/sys/src/cmd/acme/wind.c
@@ -610,13 +610,14 @@ winaddincl(Window *w, Rune *r, int n)
r = runerealloc(r, n+1);
r[n] = 0;
}
- free(a);
if((d->qid.type&QTDIR) == 0){
free(d);
warning(nil, "%s: not a directory\n", a);
free(r);
+ free(a);
return;
}
+ free(a);
free(d);
w->nincl++;
w->incl = realloc(w->incl, w->nincl*sizeof(Rune*));