diff --git a/src/api/api_lib.c b/src/api/api_lib.c index 795d7c8a..e2d3e03d 100644 --- a/src/api/api_lib.c +++ b/src/api/api_lib.c @@ -301,12 +301,15 @@ netconn_peer(struct netconn *conn, struct ip_addr *addr, case NETCONN_UDPLITE: case NETCONN_UDPNOCHKSUM: case NETCONN_UDP: - if ((conn->pcb.udp->flags & UDP_FLAGS_CONNECTED) == 0) - return -1; + if (conn->pcb.udp == NULL || + ((conn->pcb.udp->flags & UDP_FLAGS_CONNECTED) == 0)) + return ERR_CONN; *addr = (conn->pcb.udp->remote_ip); *port = conn->pcb.udp->remote_port; break; case NETCONN_TCP: + if(conn->pcb.tcp == NULL) + return ERR_CONN; *addr = (conn->pcb.tcp->remote_ip); *port = conn->pcb.tcp->remote_port; break;