summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--slirp/tftp.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/slirp/tftp.c b/slirp/tftp.c
index 5d5614adc..75aa4b24f 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,