From b9e8ffb4bed86087704569c92784b8f40ef1696a Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Sat, 4 Nov 2017 07:49:24 +0100 Subject: [PATCH] dvb: Fix sockaddr_un usage The sun_path field needs to be NULL-terminated CID #206004 --- sys/dvb/camswclient.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dvb/camswclient.c b/sys/dvb/camswclient.c index 68a3d43..b631cb1 100644 --- a/sys/dvb/camswclient.c +++ b/sys/dvb/camswclient.c @@ -76,7 +76,12 @@ cam_sw_client_open (CamSwClient * client, const char *sock_path) 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)); -- 2.7.4