diff --git a/src/slipstream_server.c b/src/slipstream_server.c index 70b8af7..8ce2c7d 100644 --- a/src/slipstream_server.c +++ b/src/slipstream_server.c @@ -211,11 +211,13 @@ slipstream_server_stream_ctx_t* slipstream_server_create_stream_ctx(slipstream_s int sock_fd = socket(AF_INET, SOCK_STREAM, 0); if (sock_fd < 0) { perror("socket() failed"); + free(stream_ctx); return NULL; } if (connect(sock_fd, (struct sockaddr*)&server_ctx->upstream_addr, sizeof(server_ctx->upstream_addr)) < 0) { perror("connect() failed"); + free(stream_ctx); return NULL; } diff --git a/src/slipstream_server_cc.c b/src/slipstream_server_cc.c index 95e3510..6e6737d 100644 --- a/src/slipstream_server_cc.c +++ b/src/slipstream_server_cc.c @@ -1,4 +1,4 @@ -#include "../include/slipstream_server_cc.h" +#include "slipstream_server_cc.h" #include diff --git a/src/slipstream_sockloop.c b/src/slipstream_sockloop.c index ad436df..79c63f6 100644 --- a/src/slipstream_sockloop.c +++ b/src/slipstream_sockloop.c @@ -153,6 +153,10 @@ int slipstream_packet_loop_(picoquic_network_thread_ctx_t* thread_ctx, picoquic_ if (ret < 0) { return ret; } + if (last_cnx == NULL) { + DBG_PRINTF("last_cnx null in recv", NULL); + continue; + } slot->cnx = last_cnx; slot->path_id = last_path_id; nb_packet_received++;