ref: 68e187fb7bdb06853fb4972382ccaccf61e90b06
parent: 93ce62ad568ce0c0b0506aadbc764f1cbf9fb232
author: glenda <glenda@cirno>
date: Mon Apr 7 11:03:54 EDT 2025
fixed "double free", run() name must be on heap
--- a/acme.c
+++ b/acme.c
@@ -380,8 +380,10 @@
return TRUE;
case '\n':
if(altdown){
- run(nil, "win", nil, 0, TRUE, nil, 0, FALSE);
- }
+ char *name = estrdup("win");
+ run(nil, name, nil, 0, TRUE, nil, 0, FALSE);
+ } else
+ return FALSE;
return TRUE;
}
@@ -813,8 +815,9 @@
if(c){
if(c->iseditcmd)
sendul(cedit, 0);
- free(c->text);
free(c->name);
+ c->name = nil;
+ free(c->text);
fsysdelid(c->md);
free(c);
}
--
⑨