Message ID | alpine.DEB.2.00.1101102325100.3913@sg-laptop |
---|---|
State | New |
Headers | show |
diff --git a/slirp/tftp.c b/slirp/tftp.c index 55e4692..6ad1da0 100644 --- a/slirp/tftp.c +++ b/slirp/tftp.c @@ -311,7 +311,7 @@ static void tftp_handle_rrq(Slirp *slirp, struct tftp_t *tp, int pktlen) return; } - if (memcmp(&tp->x.tp_buf[k], "octet\0", 6) != 0) { + if (strcasecmp(&tp->x.tp_buf[k], "octet") != 0) { tftp_send_error(spt, 4, "Unsupported transfer mode", tp); return; }
Hi, According to RFC 1350 http://www.ietf.org/rfc/rfc1350.txt [Page 5]: The mode field contains the string "netascii", "octet", or "mail" (or any combination of upper and lower case, such as "NETASCII", NetAscii", etc.) Unfortunately, current implementation of internal TFTP server breaks the requests with the mode fields like "OCTET\0". For example, the RedBoot's TFTP client sends the same (in upper case). So, it is not possible to get internal TFTP working with RedBoot loader. If you do not have doubts about STRCASECMP(3), a patch is provided. Thanks, Sergei Signed-off-by: Sergei Gavrikov <sergei.gavrikov@gmail.com> --- slirp/tftp.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)