vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Nov 29 13:39:36 2020 +0200| [b80e1b77c87f6a1c946db440e72af279011f30c0] | committer: Rémi Denis-Courmont
cli: simplify initialising Unix socket address > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b80e1b77c87f6a1c946db440e72af279011f30c0 --- modules/control/cli/cli.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/modules/control/cli/cli.c b/modules/control/cli/cli.c index cc751495dd..4fd28c2ee8 100644 --- a/modules/control/cli/cli.c +++ b/modules/control/cli/cli.c @@ -812,19 +812,19 @@ static int Activate( vlc_object_t *p_this ) if( psz_unix_path ) { int i_socket; - struct sockaddr_un addr; - - memset( &addr, 0, sizeof(struct sockaddr_un) ); + struct sockaddr_un addr = { .sun_family = AF_LOCAL }; msg_Dbg( p_intf, "trying UNIX socket" ); /* The given unix path cannot be longer than sun_path - 1 to take into * account the terminated null character. */ - if ( strlen(psz_unix_path) + 1 >= sizeof( addr.sun_path ) ) + size_t len = strlen(psz_unix_path); + if (len >= sizeof (addr.sun_path)) { msg_Err( p_intf, "rc-unix value is longer than expected" ); goto error; } + memcpy(addr.sun_path, psz_unix_path, len + 1); if( (i_socket = vlc_socket( PF_LOCAL, SOCK_STREAM, 0, false ) ) < 0 ) { @@ -832,10 +832,6 @@ static int Activate( vlc_object_t *p_this ) goto error; } - addr.sun_family = AF_LOCAL; - strncpy( addr.sun_path, psz_unix_path, sizeof( addr.sun_path ) - 1 ); - addr.sun_path[sizeof( addr.sun_path ) - 1] = '\0'; - if (bind (i_socket, (struct sockaddr *)&addr, sizeof (addr)) && (errno == EADDRINUSE) && connect (i_socket, (struct sockaddr *)&addr, sizeof (addr)) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
