forked from enlightenment/efl
elm quicklaunch - warn - explicitly handle socket length being too long
make socket too long an error. fixes warning.
This commit is contained in:
parent
b8b2253f85
commit
fdde914bac
|
@ -183,6 +183,7 @@ main(int argc, char **argv)
|
||||||
struct sigaction action;
|
struct sigaction action;
|
||||||
const char *domain;
|
const char *domain;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
if (!eina_init())
|
if (!eina_init())
|
||||||
{
|
{
|
||||||
|
@ -237,7 +238,14 @@ main(int argc, char **argv)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
socket_unix.sun_family = AF_UNIX;
|
socket_unix.sun_family = AF_UNIX;
|
||||||
strncpy(socket_unix.sun_path, buf, sizeof(socket_unix.sun_path));
|
len = strlen(buf);
|
||||||
|
if (len > sizeof(socket_unix.sun_path))
|
||||||
|
{
|
||||||
|
CRI("socket path '%s' is too long for buffer", buf);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
memcpy(socket_unix.sun_path, buf, len);
|
||||||
|
if (len < sizeof(socket_unix.sun_path)) socket_unix.sun_path[len] = 0;
|
||||||
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
socket_unix_len = LENGTH_OF_SOCKADDR_UN(&socket_unix);
|
||||||
if (bind(sock, (struct sockaddr *)&socket_unix, socket_unix_len) < 0)
|
if (bind(sock, (struct sockaddr *)&socket_unix, socket_unix_len) < 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue