diff --git a/sway/ipc.c b/sway/ipc.c index 5599cdf0..dba2acb3 100644 --- a/sway/ipc.c +++ b/sway/ipc.c @@ -82,14 +82,20 @@ void ipc_terminate(void) { struct sockaddr_un *ipc_user_sockaddr(void) { struct sockaddr_un *ipc_sockaddr = malloc(sizeof(struct sockaddr_un)); - assert(ipc_sockaddr != NULL); + if (!sway_assert(ipc_sockaddr != NULL, "can't malloc ipc_sockaddr")) { + return NULL; + } ipc_sockaddr->sun_family = AF_UNIX; int path_size = sizeof(ipc_sockaddr->sun_path); // Without logind: - assert(snprintf(ipc_sockaddr->sun_path, path_size, "/tmp/sway-ipc.%i.sock", getuid()) < path_size); + int allocating_path_size = snprintf(ipc_sockaddr->sun_path, path_size, "/tmp/sway-ipc.%i.sock", getuid()); + + if (!sway_assert(allocating_path_size < path_size, "socket path won't fit into ipc_sockaddr->sun_path")) { + return NULL; + } return ipc_sockaddr; }