mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-14 22:47:12 +00:00
Fix libc_noux's Plugin::getpeername() method
The argument's order was wrong in the memcpy() call. In addition the wrong sysio struct was used for the addrlen argument. Fixes #238.
This commit is contained in:
parent
ed867817b6
commit
f325f314b5
@ -1278,14 +1278,16 @@ namespace {
|
||||
socklen_t *addrlen)
|
||||
{
|
||||
sysio()->getpeername_in.fd = noux_fd(fd->context);
|
||||
sysio()->getpeername_in.addrlen = *addrlen;
|
||||
|
||||
if (!noux()->syscall(Noux::Session::SYSCALL_GETPEERNAME)) {
|
||||
/* errno */
|
||||
return -1;
|
||||
}
|
||||
Genode::memcpy(&sysio()->getpeername_in.addr, addr,
|
||||
sizeof (struct sockaddr));
|
||||
sysio()->bind_in.addrlen = *addrlen;
|
||||
|
||||
Genode::memcpy(addr, &sysio()->getpeername_in.addr,
|
||||
sizeof (struct sockaddr));
|
||||
*addrlen = sysio()->getpeername_in.addrlen;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user