aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhang Xiao <xiao.zhang@windriver.com>2014-06-11 14:53:37 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2014-06-15 23:21:56 -0400
commitd42a2e16056777615e6bcc126cdb92db3b4f9cdf (patch)
treef8b6d9ede1441e1935e39f44b4167237e657e576
parentf135f64596d45cbb5f6f722fd6ae4435137ef3a2 (diff)
downloadmeta-openembedded-d42a2e16056777615e6bcc126cdb92db3b4f9cdf.tar.gz
tftp-hpa: bug fix on separated CR and LF
In ascii mode, if the CR and LF was separated into different transfer blocks, This LF will be just dropped instead of replacing the previous CR. Add a checking on the first character to fix it. Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch38
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb1
2 files changed, 39 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch b/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch
new file mode 100644
index 0000000000..3e220ec385
--- /dev/null
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch
@@ -0,0 +1,38 @@
+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
+
diff --git a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
index 5baa61b354..366a4e9d40 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
+++ b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
@@ -24,6 +24,7 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t
file://default \
file://init \
file://add-error-check-for-disk-filled-up.patch \
+ file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \
"
SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21"