aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeno Fischer <keno@juliacomputing.com>2018-06-07 12:17:21 +0200
committerGreg Kurz <groug@kaod.org>2018-06-07 12:17:21 +0200
commitfde1f3e4a0644feb005894950427b622496769cb (patch)
tree3f9a718e868a9efd8f231a43163b39ff0c17c1ec
parent5d328d7d2f1fd4fb160bcfb6e4eb838720274438 (diff)
9p: proxy: Fix size passed to `connect`
The size to pass to the `connect` call is the size of the entire `struct sockaddr_un`. Passing anything shorter than this causes errors on darwin. Signed-off-by: Keno Fischer <keno@juliacomputing.com> Signed-off-by: Greg Kurz <groug@kaod.org>
-rw-r--r--hw/9pfs/9p-proxy.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/hw/9pfs/9p-proxy.c b/hw/9pfs/9p-proxy.c
index e2e03292de..47a94e088d 100644
--- a/hw/9pfs/9p-proxy.c
+++ b/hw/9pfs/9p-proxy.c
@@ -1088,7 +1088,7 @@ static int proxy_ioc_getversion(FsContext *fs_ctx, V9fsPath *path,
static int connect_namedsocket(const char *path, Error **errp)
{
- int sockfd, size;
+ int sockfd;
struct sockaddr_un helper;
if (strlen(path) >= sizeof(helper.sun_path)) {
@@ -1102,8 +1102,7 @@ static int connect_namedsocket(const char *path, Error **errp)
}
strcpy(helper.sun_path, path);
helper.sun_family = AF_UNIX;
- size = strlen(helper.sun_path) + sizeof(helper.sun_family);
- if (connect(sockfd, (struct sockaddr *)&helper, size) < 0) {
+ if (connect(sockfd, (struct sockaddr *)&helper, sizeof(helper)) < 0) {
error_setg_errno(errp, errno, "failed to connect to '%s'", path);
close(sockfd);
return -1;