From eb527ac01ad7e3255b757d620bc678a834a3958a Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Mon, 17 Dec 2018 00:54:00 -0500 Subject: [PATCH] swaynag: remove double free of details button If there are no arguments or invalid arguments given, swaynag will free `swaynag.details.button_details` under the `cleanup` label in main. It then called `swaynag_destroy`, which would attempt to free it again. Since `swaynag.details.button_details` is either freed on line 106 of main (when there is no detailed message) or added to `swaynag.buttons` on line 103 of main, there is no reason to manually free it in `swaynag_destroy`. Although I cannot reproduce a double free on my system, for some reason, it should have actually resulted in a double free in all code paths. --- swaynag/swaynag.c | 1 - 1 file changed, 1 deletion(-) diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c index 2fc2416f..674c24b5 100644 --- a/swaynag/swaynag.c +++ b/swaynag/swaynag.c @@ -416,7 +416,6 @@ void swaynag_destroy(struct swaynag *swaynag) { free(button); } list_free(swaynag->buttons); - free(swaynag->details.button_details); free(swaynag->details.message); free(swaynag->details.button_up.text); free(swaynag->details.button_down.text);