From effa71a811c791b096fd1995d8e5fdae76a07f48 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Tue, 16 Apr 2013 13:55:23 -0300 Subject: [PATCH] tftp.c: make "packet_data" unsigned and optimize strcpy+strlen --- software/bios/tftp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/software/bios/tftp.c b/software/bios/tftp.c index 29e26657..ca50034a 100644 --- a/software/bios/tftp.c +++ b/software/bios/tftp.c @@ -14,12 +14,14 @@ enum { TFTP_ERROR = 5, /* Error */ }; -static int format_request(char *buf, const char *filename) +static int format_request(unsigned char *buf, const char *filename) { + int len = strlen(filename); + *buf++ = 0x00; /* Opcode: Request */ *buf++ = TFTP_RRQ; - strcpy(buf, filename); - buf += strlen(filename); + memcpy(buf, filename, len); + buf += len; *buf++ = 0x00; *buf++ = 'o'; *buf++ = 'c'; @@ -30,7 +32,7 @@ static int format_request(char *buf, const char *filename) return 9+strlen(filename); } -static int format_ack(char *buf, unsigned short block) +static int format_ack(unsigned char *buf, unsigned short block) { *buf++ = 0x00; /* Opcode: Ack */ *buf++ = TFTP_ACK; @@ -39,7 +41,7 @@ static int format_ack(char *buf, unsigned short block) return 4; } -static char *packet_data; +static unsigned char *packet_data; static int total_length; static int transfer_finished; static char *dst_buffer; -- 2.30.2