From: Edward Hervey Date: Sat, 4 Nov 2017 06:49:24 +0000 (+0100) Subject: dvb: Fix sockaddr_un usage X-Git-Tag: 1.19.3~507^2~4763 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b9e8ffb4bed86087704569c92784b8f40ef1696a;p=platform%2Fupstream%2Fgstreamer.git dvb: Fix sockaddr_un usage The sun_path field needs to be NULL-terminated CID #206004 --- 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));