Merge pull request #14963 from miri64/gnrc_sock_ip/fix/sock
gnrc_sock_ip: fix NULL pointer dereference
This commit is contained in:
commit
ec436b9069
@ -194,7 +194,7 @@ ssize_t sock_ip_send(sock_ip_t *sock, const void *data, size_t len,
|
||||
gnrc_ep_set(&rem, remote, sizeof(rem));
|
||||
}
|
||||
if ((remote != NULL) && (remote->family == AF_UNSPEC) &&
|
||||
(sock->remote.family != AF_UNSPEC)) {
|
||||
(sock != NULL) && (sock->remote.family != AF_UNSPEC)) {
|
||||
/* remote was set on create so take its family */
|
||||
rem.family = sock->remote.family;
|
||||
}
|
||||
|
||||
@ -366,7 +366,7 @@ static void test_sock_ip_recv_buf__success(void)
|
||||
assert(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_send__EAFNOSUPPORT(void)
|
||||
static void test_sock_ip_send__EAFNOSUPPORT_INET(void)
|
||||
{
|
||||
static const sock_ip_ep_t remote = { .addr = { .ipv6 = _TEST_ADDR_REMOTE },
|
||||
.family = AF_INET };
|
||||
@ -376,6 +376,16 @@ static void test_sock_ip_send__EAFNOSUPPORT(void)
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_send__EAFNOSUPPORT_UNSPEC(void)
|
||||
{
|
||||
static const sock_ip_ep_t remote = { .addr = { .ipv6 = _TEST_ADDR_REMOTE },
|
||||
.family = AF_UNSPEC };
|
||||
|
||||
expect(-EAFNOSUPPORT == sock_ip_send(NULL, "ABCD", sizeof("ABCD"),
|
||||
_TEST_PROTO, &remote));
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_send__EINVAL_addr(void)
|
||||
{
|
||||
static const sock_ip_ep_t local = { .addr = { .ipv6 = _TEST_ADDR_LOCAL },
|
||||
@ -641,7 +651,8 @@ int main(void)
|
||||
CALL(test_sock_ip_recv__non_blocking());
|
||||
CALL(test_sock_ip_recv_buf__success());
|
||||
_prepare_send_checks();
|
||||
CALL(test_sock_ip_send__EAFNOSUPPORT());
|
||||
CALL(test_sock_ip_send__EAFNOSUPPORT_INET());
|
||||
CALL(test_sock_ip_send__EAFNOSUPPORT_UNSPEC());
|
||||
CALL(test_sock_ip_send__EINVAL_addr());
|
||||
CALL(test_sock_ip_send__EINVAL_netif());
|
||||
CALL(test_sock_ip_send__ENOTCONN());
|
||||
|
||||
@ -30,7 +30,8 @@ def testfunc(child):
|
||||
child.expect_exact(u"Calling test_sock_ip_recv__unsocketed()")
|
||||
child.expect_exact(u"Calling test_sock_ip_recv__unsocketed_with_remote()")
|
||||
child.expect_exact(u"Calling test_sock_ip_recv__with_timeout()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__EAFNOSUPPORT()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__EAFNOSUPPORT_INET()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__EAFNOSUPPORT_UNSPEC()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__EINVAL_addr()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__EINVAL_netif()")
|
||||
child.expect_exact(u"Calling test_sock_ip_send__ENOTCONN()")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user