diff options
author | Daniel Dressler <danieru.dressler@gmail.com> | 2014-08-01 17:18:53 -0600 |
---|---|---|
committer | Daniel Dressler <danieru.dressler@gmail.com> | 2014-08-01 17:18:53 -0600 |
commit | 9aa9247718bf87a6f5e602b5126cc48c84d006b6 (patch) | |
tree | 848718024d784a845728433d023508f00a1853d7 /src | |
parent | 44f013b1bc7c9eaeffec87945641310698ef93da (diff) |
Fix segfault upon alloc failure
Diffstat (limited to 'src')
-rw-r--r-- | src/ippusbxd.c | 4 | ||||
-rw-r--r-- | src/tcp.c | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/ippusbxd.c b/src/ippusbxd.c index 3203206..d2d065a 100644 --- a/src/ippusbxd.c +++ b/src/ippusbxd.c @@ -40,11 +40,11 @@ static void *service_connection(void *arg_void) struct http_packet_t *pkt; pkt = tcp_packet_get(arg->tcp, client_msg); if (pkt == NULL) { - NOTE("Got null packet from tcp"); if (arg->tcp->is_closed) { NOTE("Client closed connection\n"); + goto cleanup_subconn; } - goto cleanup_subconn; + ERR_AND_EXIT("Got null packet from tcp"); } if (usb == NULL) { usb = usb_conn_aquire(arg->usb_sock, 1); @@ -106,6 +106,7 @@ struct http_packet_t *tcp_packet_get(struct tcp_conn_t *tcp, ssize_t gotten_size = recv(tcp->sd, subbuffer, want_size, 0); if (gotten_size < 0) { int errno_saved = errno; + // TODO: checkfor timeout ERR("recv failed with err %d:%s", errno_saved, strerror(errno_saved)); goto error; |