1From 6ed1eb8829dee351b54e183bc42c007cb306aaa5 Mon Sep 17 00:00:00 2001
2From: Zhang Xiao <xiao.zhang@windriver.com>
3Date: Wed, 11 Jun 2014 14:01:16 +0800
4Subject: [PATCH] tftp-hpa: bug fix on separated CR and LF
5
6In ascii mode, if the CR and LF was separated into different transfer
7blocks, LF will be just dropped instead of replacing the previous CR.
8Add a checking on the first character to fix it.
9
10Upstream-Status: pending
11
12Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
13---
14 common/tftpsubs.c | 8 ++++++++
15 1 file changed, 8 insertions(+)
16
17diff --git a/common/tftpsubs.c b/common/tftpsubs.c
18index b4d4ffe..b4ea3f2 100644
19--- a/common/tftpsubs.c
20+++ b/common/tftpsubs.c
21@@ -207,6 +207,14 @@ int write_behind(FILE * file, int convert)
22     p = buf;
23     ct = count;
24     count = 0;
25+
26+    /* Check the first character together with prevchar */
27+    c = *p;
28+    if ((prevchar == '\r') && (c == '\n')) {
29+        lseek(fileno(file), -1, SEEK_CUR);
30+        count++;
31+    }
32+
33     while (ct--) {              /* loop over the buffer */
34         c = *p++;               /* pick up a character */
35         if (prevchar == '\r') { /* if prev char was cr */
36--
371.8.5.2.233.g932f7e4
38
39