g_return_val_if_fail (client != NULL, FALSE);
g_return_val_if_fail (client->state == CAM_SW_CLIENT_STATE_CLOSED, FALSE);
g_return_val_if_fail (sock_path != NULL, FALSE);
- g_return_val_if_fail (strlen (sock_path) >= sizeof (addr.sun_path), FALSE);
+
+ /* sun.path needs to end up NULL-terminated */
+ if (strlen (sock_path) >= (sizeof (addr.sun_path) - 1)) {
+ GST_ERROR ("sock_path is too long");
+ return FALSE;
+ }
addr.sun_family = AF_UNIX;
strncpy (addr.sun_path, sock_path, sizeof (addr.sun_path));