[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] shell: LIOv2-Fixes für cp



! shell: Verdrehte fread-Parameter in cp gefixt. cp muss 1 für die
  Objektgröße nehmen, sonst werden nur Dateien mit durch 4k teilbarer
  Größe richtig kopiert
! shell: Ein fread-Rückgabewert von 0 ist nicht zwingend ein Fehler

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/modules/c/shell/cmds/cp.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/modules/c/shell/cmds/cp.c b/src/modules/c/shell/cmds/cp.c
index 5c0f0e8..88a04fd 100644
--- a/src/modules/c/shell/cmds/cp.c
+++ b/src/modules/c/shell/cmds/cp.c
@@ -250,13 +250,13 @@ int cp_file(char* src_path, char* dst_path) {
 
     uint8_t buffer[BUFFER_SIZE];
 
-    while (!feof(src)) { 
-        size_t length = fread(buffer, BUFFER_SIZE, 1, src);
-        if (length == 0) {
-            fprintf(stderr, "Fehler beim Kopieren: %d\n", length);
+    while (!feof(src)) {
+        size_t length = fread(buffer, 1, BUFFER_SIZE, src);
+        if (ferror(src)) {
+            fprintf(stderr, "Fehler beim Lesen der Quelldatei\n");
             fclose(src);
             fclose(dst);
-            return EXIT_FAILURE;
+            return -3;
         }
 
         fwrite(buffer, length, 1, dst);
-- 
1.6.0.2