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>
This commit is contained in:
parent
5d328d7d2f
commit
fde1f3e4a0
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user