19 Oct
2020
19 Oct
'20
10:34 a.m.
Zebediah Figura <z.figura12(a)gmail.com> writes:
+ unix_len = sizeof(unix_addr); + win_addr = (struct WS_sockaddr *)(out_data + req->recv_len + sizeof(int)); + if (getsockname( fd, &unix_addr.addr, &unix_len ) < 0 || + (win_len = sockaddr_from_unix( &unix_addr, win_addr, req->local_len )) < 0) + { + set_win32_error( sock_get_error( errno ) ); + free( out_data ); + return; + } + *(int *)(out_data + req->recv_len) = win_len;
You need to make sure the lengths are properly aligned, or else use memcpy() when storing ints or WS_sockaddr data into the buffer. -- Alexandre Julliard julliard(a)winehq.org