diff --git a/features/lwipstack/LWIPStack.cpp b/features/lwipstack/LWIPStack.cpp index 04ca9d59c96..5bf2cdc1caa 100644 --- a/features/lwipstack/LWIPStack.cpp +++ b/features/lwipstack/LWIPStack.cpp @@ -488,12 +488,18 @@ nsapi_size_or_error_t LWIP::socket_sendto(nsapi_socket_t handle, const SocketAdd { struct mbed_lwip_socket *s = (struct mbed_lwip_socket *)handle; ip_addr_t ip_addr; + nsapi_addr_t interface_addr; nsapi_addr_t addr = address.get_addr(); if (!convert_mbed_addr_to_lwip(&ip_addr, &addr)) { return NSAPI_ERROR_PARAMETER; } + convert_lwip_addr_to_mbed(&interface_addr, get_ip_addr(true, &default_interface->netif)); + if (addr.version != interface_addr.version) { + return NSAPI_ERROR_PARAMETER; + } + struct netbuf *buf = netbuf_new(); err_t err = netbuf_ref(buf, data, (u16_t)size);