diff mbox

slirp/tftp.c: fix mode field

Message ID alpine.DEB.2.00.1101102325100.3913@sg-laptop
State New
Headers show

Commit Message

Sergei Gavrikov Jan. 10, 2011, 9:46 p.m. UTC
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(-)
diff mbox

Patch

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;
   }