Ticket #1225: 0002-client-ASYNC_VERIFY-verify_chunk-check-ferror-after-.patch

File 0002-client-ASYNC_VERIFY-verify_chunk-check-ferror-after-.patch, 1.0 KB (added by rctay, 11 years ago)
  • client/async_file.cpp

    From de87bfafccec85f870d5f703b2a763fc064d2573 Mon Sep 17 00:00:00 2001
    From: Tay Ray Chuan <rctay89@gmail.com>
    Date: Tue, 12 Feb 2013 22:40:23 +0800
    Subject: [PATCH 2/2] client/ASYNC_VERIFY::verify_chunk: check ferror() after
     a fread()/fwrite()
    
    ---
     client/async_file.cpp | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/client/async_file.cpp b/client/async_file.cpp
    index e8f1110..717812d 100644
    a b int ASYNC_VERIFY::verify_chunk() { 
    260260            return 1;
    261261        } else {
    262262            size_t m = fwrite(buf, 1, n, out);
    263             if (m != n) {
     263            if (m != n || ferror(out)) {
    264264                // write failed
    265265                //
    266266                error(ERR_FWRITE);
    int ASYNC_VERIFY::verify_chunk() { 
    270270        }
    271271    } else {
    272272        n = fread(buf, 1, BUFSIZE, in);
    273         if (!n) {
     273        if (!n || ferror(in)) {
    274274            fclose(in);
    275275            finish();
    276276            return 1;