mirror of
https://github.com/samba-team/samba.git
synced 2025-01-08 21:18:16 +03:00
s4-lib/socket: Allocate a the larger sockaddr_un and not just a sockaddr_in in unixdom_get_my_addr()
This caused crashes in _tsocket_address_bsd_from_sockaddr() when we
read past the end of the allocation.
(similar to commit e9ae36e968
)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10042
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Jul 24 14:37:43 CEST 2013 on sn-devel-104
This commit is contained in:
parent
a7801db32a
commit
077dfd0a89
@ -362,7 +362,7 @@ static struct socket_address *unixdom_get_peer_addr(struct socket_context *sock,
|
||||
|
||||
static struct socket_address *unixdom_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
|
||||
{
|
||||
struct sockaddr_in *local_addr;
|
||||
struct sockaddr_un *local_addr;
|
||||
socklen_t len = sizeof(*local_addr);
|
||||
struct socket_address *local;
|
||||
int ret;
|
||||
@ -373,7 +373,7 @@ static struct socket_address *unixdom_get_my_addr(struct socket_context *sock, T
|
||||
}
|
||||
|
||||
local->family = sock->backend_name;
|
||||
local_addr = talloc(local, struct sockaddr_in);
|
||||
local_addr = talloc(local, struct sockaddr_un);
|
||||
if (!local_addr) {
|
||||
talloc_free(local);
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user