| From 6ed1eb8829dee351b54e183bc42c007cb306aaa5 Mon Sep 17 00:00:00 2001 |
| From: Zhang Xiao <xiao.zhang@windriver.com> |
| Date: Wed, 11 Jun 2014 14:01:16 +0800 |
| Subject: [PATCH] tftp-hpa: bug fix on separated CR and LF |
| |
| In ascii mode, if the CR and LF was separated into different transfer |
| blocks, LF will be just dropped instead of replacing the previous CR. |
| Add a checking on the first character to fix it. |
| |
| Upstream-Status: pending |
| |
| Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com> |
| --- |
| common/tftpsubs.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| diff --git a/common/tftpsubs.c b/common/tftpsubs.c |
| index b4d4ffe..b4ea3f2 100644 |
| --- a/common/tftpsubs.c |
| +++ b/common/tftpsubs.c |
| @@ -207,6 +207,14 @@ int write_behind(FILE * file, int convert) |
| p = buf; |
| ct = count; |
| count = 0; |
| + |
| + /* Check the first character together with prevchar */ |
| + c = *p; |
| + if ((prevchar == '\r') && (c == '\n')) { |
| + lseek(fileno(file), -1, SEEK_CUR); |
| + count++; |
| + } |
| + |
| while (ct--) { /* loop over the buffer */ |
| c = *p++; /* pick up a character */ |
| if (prevchar == '\r') { /* if prev char was cr */ |
| -- |
| 1.8.5.2.233.g932f7e4 |
| |