tftp-hpa: fix the empty file writing error

make write_behind to return 0 if a empty file is written, to
distinguish a true writing failure[on which the write_behind
will return -1], then the annoying wrong log will disappear.
    ____
    |Error code 3: Disk full or allocation exceeded
    -----
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
This commit is contained in:
Roy.Li
2014-10-17 13:24:24 +08:00
committed by Joe MacDonald
parent 15ccbddc6d
commit 4cc73f63aa
2 changed files with 40 additions and 0 deletions
@@ -0,0 +1,39 @@
[PATCH] fix the empty file writting
Upstream-Status: pending
With the feature that checking the disk filled up, the return
value of function write_behind was checked and used to detect
the disk status. While for empty file, without data being
written, this function will return -1 thus the disk filled up
error was miss-raised.
make write_behind to return 0 if written file is empty, to fix
the this bug.
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
---
common/tftpsubs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/common/tftpsubs.c b/common/tftpsubs.c
index b4ea3f2..9f6cafc 100644
--- a/common/tftpsubs.c
+++ b/common/tftpsubs.c
@@ -198,9 +198,12 @@ int write_behind(FILE * file, int convert)
nextone = !nextone; /* incr for next time */
buf = dp->th_data;
- if (count <= 0)
+ if (count < 0)
return -1; /* nak logic? */
+ if (count == 0)
+ return 0;
+
if (convert == 0)
return write(fileno(file), buf, count);
--
1.9.1
@@ -25,6 +25,7 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t
file://init \
file://add-error-check-for-disk-filled-up.patch \
file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \
file://fix-writing-emtpy-file.patch \
"
SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21"