Patchwork [meta-networking] tftp-hpa: bug fix on separated CR and LF

login
register
mail settings
Submitter zhangxiao
Date June 11, 2014, 6:53 a.m.
Message ID <1402469617-23634-1-git-send-email-xiao.zhang@windriver.com>
Download mbox | patch
Permalink /patch/73597/
State New, archived
Headers show

Comments

zhangxiao - June 11, 2014, 6:53 a.m.
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>
---
 .../tftp-hpa-bug-fix-on-separated-CR-and-LF.patch  |   38 ++++++++++++++++++++
 .../recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb       |    1 +
 2 files changed, 39 insertions(+), 0 deletions(-)
 create mode 100644 meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch

Patch

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 0000000..3e220ec
--- /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 6978e06..eb8d00e 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"