diff options
-rw-r--r-- | slirp/tftp.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/slirp/tftp.c b/slirp/tftp.c index 5d5614adc3..75aa4b24f6 100644 --- a/slirp/tftp.c +++ b/slirp/tftp.c @@ -167,11 +167,9 @@ static int tftp_send_oack(struct tftp_session *spt, return 0; } - - -static int tftp_send_error(struct tftp_session *spt, - u_int16_t errorcode, const char *msg, - struct tftp_t *recv_tp) +static void tftp_send_error(struct tftp_session *spt, + u_int16_t errorcode, const char *msg, + struct tftp_t *recv_tp) { struct sockaddr_in saddr, daddr; struct mbuf *m; @@ -181,7 +179,7 @@ static int tftp_send_error(struct tftp_session *spt, m = m_get(); if (!m) { - return -1; + goto out; } memset(m->m_data, 0, m->m_size); @@ -207,9 +205,8 @@ static int tftp_send_error(struct tftp_session *spt, udp_output2(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY); +out: tftp_session_terminate(spt); - - return 0; } static int tftp_send_data(struct tftp_session *spt, |