aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/ipc-client.c2
-rw-r--r--sway/commands.c2
-rw-r--r--sway/commands/exec_always.c2
-rw-r--r--sway/ipc-server.c2
-rw-r--r--sway/tree/layout.c7
5 files changed, 9 insertions, 6 deletions
diff --git a/common/ipc-client.c b/common/ipc-client.c
index 117e9910..a88df080 100644
--- a/common/ipc-client.c
+++ b/common/ipc-client.c
@@ -48,7 +48,7 @@ int ipc_open_socket(const char *socket_path) {
sway_abort("Unable to open Unix socket");
}
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path));
+ strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
addr.sun_path[sizeof(addr.sun_path) - 1] = 0;
int l = sizeof(struct sockaddr_un);
if (connect(socketfd, (struct sockaddr *)&addr, l) == -1) {
diff --git a/sway/commands.c b/sway/commands.c
index 54d84450..99f42524 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -601,7 +601,7 @@ struct cmd_results *add_color(const char *name,
"Invalid color definition %s", color);
}
}
- strncpy(buffer, color, len);
+ strcpy(buffer, color);
// add default alpha channel if color was defined without it
if (len == 7) {
buffer[7] = 'f';
diff --git a/sway/commands/exec_always.c b/sway/commands/exec_always.c
index 954950e7..af4e4965 100644
--- a/sway/commands/exec_always.c
+++ b/sway/commands/exec_always.c
@@ -32,7 +32,7 @@ struct cmd_results *cmd_exec_always(int argc, char **argv) {
// Put argument into cmd array
char cmd[4096];
- strncpy(cmd, tmp, sizeof(cmd));
+ strncpy(cmd, tmp, sizeof(cmd) - 1);
cmd[sizeof(cmd) - 1] = 0;
free(tmp);
wlr_log(L_DEBUG, "Executing %s", cmd);
diff --git a/sway/ipc-server.c b/sway/ipc-server.c
index 045802e1..39d1d0a7 100644
--- a/sway/ipc-server.c
+++ b/sway/ipc-server.c
@@ -64,7 +64,7 @@ void ipc_init(struct sway_server *server) {
// We want to use socket name set by user, not existing socket from another sway instance.
if (getenv("SWAYSOCK") != NULL && access(getenv("SWAYSOCK"), F_OK) == -1) {
- strncpy(ipc_sockaddr->sun_path, getenv("SWAYSOCK"), sizeof(ipc_sockaddr->sun_path));
+ strncpy(ipc_sockaddr->sun_path, getenv("SWAYSOCK"), sizeof(ipc_sockaddr->sun_path) - 1);
ipc_sockaddr->sun_path[sizeof(ipc_sockaddr->sun_path) - 1] = 0;
}
diff --git a/sway/tree/layout.c b/sway/tree/layout.c
index ae76ca26..0b637822 100644
--- a/sway/tree/layout.c
+++ b/sway/tree/layout.c
@@ -288,8 +288,11 @@ void container_move(struct sway_container *container,
switch (current->type) {
case C_OUTPUT: {
- enum wlr_direction wlr_dir;
- sway_dir_to_wlr(move_dir, &wlr_dir);
+ enum wlr_direction wlr_dir = 0;
+ if (!sway_assert(sway_dir_to_wlr(move_dir, &wlr_dir),
+ "got invalid direction: %d", move_dir)) {
+ return;
+ }
double ref_lx = current->x + current->width / 2;
double ref_ly = current->y + current->height / 2;
struct wlr_output *next = wlr_output_layout_adjacent_output(