Commit fde1f3e4 authored by Keno Fischer's avatar Keno Fischer Committed by Greg Kurz
Browse files

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: default avatarKeno Fischer <keno@juliacomputing.com>
Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
parent 5d328d7d
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;