shithub: acme

Download patch

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);
 			}
--