summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-12-15 18:17:36 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-12-15 19:01:41 -0500
commita2b914965686bb4352b8ebc4a46d898f5a793647 (patch)
treeb1dd50cfcb5b05b6119452ef2911a1221edf8f62
parentHandle allocation failures in security code (diff)
downloadsway-a2b914965686bb4352b8ebc4a46d898f5a793647.tar.gz
sway-a2b914965686bb4352b8ebc4a46d898f5a793647.tar.zst
sway-a2b914965686bb4352b8ebc4a46d898f5a793647.zip
Add remaining sway allocation failure handling
-rw-r--r--sway/container.c2
-rw-r--r--sway/workspace.c10
2 files changed, 10 insertions, 2 deletions
diff --git a/sway/container.c b/sway/container.c
index e5284200..8a584efa 100644
--- a/sway/container.c
+++ b/sway/container.c
@@ -217,7 +217,7 @@ swayc_t *new_workspace(swayc_t *output, const char *name) {
217 workspace->y = output->y; 217 workspace->y = output->y;
218 workspace->width = output->width; 218 workspace->width = output->width;
219 workspace->height = output->height; 219 workspace->height = output->height;
220 workspace->name = strdup(name); 220 workspace->name = !name ? NULL : strdup(name);
221 workspace->visible = false; 221 workspace->visible = false;
222 workspace->floating = create_list(); 222 workspace->floating = create_list();
223 223
diff --git a/sway/workspace.c b/sway/workspace.c
index 7b24d7d9..d804126b 100644
--- a/sway/workspace.c
+++ b/sway/workspace.c
@@ -121,6 +121,10 @@ char *workspace_next_name(const char *output_name) {
121 l = 3; 121 l = 3;
122 } 122 }
123 char *name = malloc(l + 1); 123 char *name = malloc(l + 1);
124 if (!name) {
125 sway_log(L_ERROR, "Could not allocate workspace name");
126 return NULL;
127 }
124 sprintf(name, "%d", ws_num++); 128 sprintf(name, "%d", ws_num++);
125 return name; 129 return name;
126} 130}
@@ -278,7 +282,11 @@ bool workspace_switch(swayc_t *workspace) {
278 || (strcmp(prev_workspace_name, active_ws->name) 282 || (strcmp(prev_workspace_name, active_ws->name)
279 && active_ws != workspace)) { 283 && active_ws != workspace)) {
280 free(prev_workspace_name); 284 free(prev_workspace_name);
281 prev_workspace_name = malloc(strlen(active_ws->name)+1); 285 prev_workspace_name = malloc(strlen(active_ws->name) + 1);
286 if (!prev_workspace_name) {
287 sway_log(L_ERROR, "Unable to allocate previous workspace name");
288 return false;
289 }
282 strcpy(prev_workspace_name, active_ws->name); 290 strcpy(prev_workspace_name, active_ws->name);
283 } 291 }
284 292