From: Werner Almesberger Date: Tue, 16 Apr 2013 16:55:23 +0000 (-0300) Subject: tftp.c: make "packet_data" unsigned and optimize strcpy+strlen X-Git-Tag: 24jan2021_ls180~2979 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=effa71a811c791b096fd1995d8e5fdae76a07f48;p=litex.git tftp.c: make "packet_data" unsigned and optimize strcpy+strlen --- 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;