aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-02-05 08:35:00 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2019-02-11 10:15:00 -0500
commit0c091bed769b43089191d5f62cdd81ef399cfd98 (patch)
treebc3ed187e304d0bd2fa76d4bb2a8a6ef2a38cb08
parentSet version in project file (diff)
downloadsway-0c091bed769b43089191d5f62cdd81ef399cfd98.tar.gz
sway-0c091bed769b43089191d5f62cdd81ef399cfd98.tar.zst
sway-0c091bed769b43089191d5f62cdd81ef399cfd98.zip
cmd_workspace_gaps: fix double free on bad amount
This fixes a double free in cmd_workspace_gaps when the amount given is invalid. The end pointer from strtol is part of the argument and should not be freed. Freeing the end pointer could result in a double free or bad free depending on whether or not the end pointer was at the start of the argument
-rw-r--r--sway/commands/workspace.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/sway/commands/workspace.c b/sway/commands/workspace.c
index c5d6435a..65a3f407 100644
--- a/sway/commands/workspace.c
+++ b/sway/commands/workspace.c
@@ -76,7 +76,6 @@ static struct cmd_results *cmd_workspace_gaps(int argc, char **argv,
76 char *end; 76 char *end;
77 int amount = strtol(argv[gaps_location + 2], &end, 10); 77 int amount = strtol(argv[gaps_location + 2], &end, 10);
78 if (strlen(end)) { 78 if (strlen(end)) {
79 free(end);
80 return cmd_results_new(CMD_FAILURE, expected); 79 return cmd_results_new(CMD_FAILURE, expected);
81 } 80 }
82 81