diff --git a/src/picom.c b/src/picom.c index d2192513..48e7913d 100644 --- a/src/picom.c +++ b/src/picom.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -972,8 +973,10 @@ static int register_cm(session_t *ps) { // Set WM_CLIENT_MACHINE. As per EWMH, because we set _NET_WM_PID, we must also // set WM_CLIENT_MACHINE. { - char hostname[HOST_NAME_MAX]; - if (gethostname(hostname, sizeof(hostname)) == 0) { + const auto hostname_max = (unsigned long)sysconf(_SC_HOST_NAME_MAX); + char *hostname = malloc(hostname_max); + + if (gethostname(hostname, hostname_max) == 0) { e = xcb_request_check( ps->c, xcb_change_property_checked( ps->c, XCB_PROP_MODE_REPLACE, ps->reg_win, @@ -987,6 +990,8 @@ static int register_cm(session_t *ps) { } else { log_error_errno("Failed to get hostname"); } + + free(hostname); } // Set _NET_WM_PID