jtag/drivers/remote_bitbang: use sizeof to determine maximum unix socket path length

Different *nix systems use different constants, so sizeof should be
used instead. This fixes the build on OS X (as sun_path length is
hardcoded to 104 on Darwin).

Change-Id: I1df611383dedcfc6d153ec59b453a895c7d84e94
Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2095
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-by: Xiaofan <xiaofanc@gmail.com>
This commit is contained in:
Paul Fertser 2014-04-06 08:36:37 +04:00
parent 4835a21dea
commit 3a590658e9
1 changed files with 2 additions and 6 deletions

View File

@ -29,10 +29,6 @@
#include <jtag/interface.h>
#include "bitbang.h"
#ifndef UNIX_PATH_LEN
#define UNIX_PATH_LEN 108
#endif
/* arbitrary limit on host name length: */
#define REMOTE_BITBANG_HOST_MAX 255
@ -192,8 +188,8 @@ static int remote_bitbang_init_unix(void)
struct sockaddr_un addr;
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, remote_bitbang_host, UNIX_PATH_LEN);
addr.sun_path[UNIX_PATH_LEN-1] = '\0';
strncpy(addr.sun_path, remote_bitbang_host, sizeof(addr.sun_path));
addr.sun_path[sizeof(addr.sun_path)-1] = '\0';
if (connect(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) {
LOG_ERROR("connect: %s", strerror(errno));