From 0608ae655027f416c99b64e92fd468ab4d9a6c32 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Tue, 16 Sep 2003 20:48:28 +0000 Subject: [PATCH] Fix rare SEGV in unix_addrstr with bad reference of UNIX socket path. --- comstack/unix.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/comstack/unix.c b/comstack/unix.c index 22087ea..23c60ab 100644 --- a/comstack/unix.c +++ b/comstack/unix.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: unix.c,v 1.12 2003-05-14 13:49:02 adam Exp $ + * $Id: unix.c,v 1.13 2003-09-16 20:48:28 adam Exp $ * UNIX socket COMSTACK. By Morten Bøgeskov. */ #ifndef WIN32 @@ -308,7 +308,7 @@ static int unix_listen(COMSTACK h, char *raddr, int *addrlen, void *cd) { struct sockaddr_un addr; - YAZ_SOCKLEN_T len = SUN_LEN(&addr); + YAZ_SOCKLEN_T len = sizeof(addr); TRC(fprintf(stderr, "unix_listen pid=%d\n", getpid())); if (h->state != CS_ST_IDLE) @@ -388,6 +388,7 @@ static COMSTACK unix_accept(COMSTACK h) state->altsize = state->altlen = 0; state->towrite = state->written = -1; state->complete = st->complete; + memcpy(&state->addr, &st->addr, sizeof(state->addr)); cnew->state = CS_ST_ACCEPT; cnew->event = CS_NONE; h->state = CS_ST_IDLE; -- 1.7.10.4