commit a2b914965686bb4352b8ebc4a46d898f5a793647
parent 7784f1a905cad5ad805195dcc3cba23ff206501c
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu, 15 Dec 2016 18:17:36 -0500
Add remaining sway allocation failure handling
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/sway/container.c b/sway/container.c
@@ -217,7 +217,7 @@ swayc_t *new_workspace(swayc_t *output, const char *name) {
workspace->y = output->y;
workspace->width = output->width;
workspace->height = output->height;
- workspace->name = strdup(name);
+ workspace->name = !name ? NULL : strdup(name);
workspace->visible = false;
workspace->floating = create_list();
diff --git a/sway/workspace.c b/sway/workspace.c
@@ -121,6 +121,10 @@ char *workspace_next_name(const char *output_name) {
l = 3;
}
char *name = malloc(l + 1);
+ if (!name) {
+ sway_log(L_ERROR, "Could not allocate workspace name");
+ return NULL;
+ }
sprintf(name, "%d", ws_num++);
return name;
}
@@ -278,7 +282,11 @@ bool workspace_switch(swayc_t *workspace) {
|| (strcmp(prev_workspace_name, active_ws->name)
&& active_ws != workspace)) {
free(prev_workspace_name);
- prev_workspace_name = malloc(strlen(active_ws->name)+1);
+ prev_workspace_name = malloc(strlen(active_ws->name) + 1);
+ if (!prev_workspace_name) {
+ sway_log(L_ERROR, "Unable to allocate previous workspace name");
+ return false;
+ }
strcpy(prev_workspace_name, active_ws->name);
}