X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfcrypt.c;h=83f6c69869a689b2505b691abf8b07c92dc2cca1;hb=a874fa08a172c1d5006d15d05e494e1b9fbda211;hp=604a6bf990247abd61c19f996a83dea63d989002;hpb=0d620a6eb276b6610913a5d944e380f00d589a43;p=tfcrypt.git diff --git a/tfcrypt.c b/tfcrypt.c index 604a6bf..83f6c69 100644 --- a/tfcrypt.c +++ b/tfcrypt.c @@ -641,7 +641,7 @@ _nosalt: lrem = lblock = sizeof(tmpdata); if (error_action == TFC_ERRACT_SYNC) rdpos = tfc_fdgetpos(mkfd); _mkragain: lio = xread(mkfd, pblk, lrem); - if (lio == 0) do_stop = YES; + if (lio == 0 && do_stop == NO) do_stop = YES; if (lio != NOSIZE) ldone += lio; else { if (errno != EIO && catch_all_errors != YES) @@ -1115,7 +1115,7 @@ _ctrwagain: lio = xwrite(dfd, pblk, lrem); lrem = lblock = blk_len_adj(maxlen, total_processed_src, blksize); if (error_action == TFC_ERRACT_SYNC) rdpos = tfc_fdgetpos(sfd); _ragain: lio = xread(sfd, pblk, lrem); - if (lio == 0) do_stop = TFC_STOP_BEGAN; + if (lio == 0) do_stop = YES; if (lio != NOSIZE) ldone += lio; else { if (errno != EIO && catch_all_errors != YES) @@ -1195,8 +1195,6 @@ _nowrite: total_processed_dst += ldone; if (maxlen != NOFSIZE && total_processed_src >= maxlen) break; } - if (do_stop == TFC_STOP_FULL) goto _nomac; - errno = 0; if (do_mac >= TFC_MAC_VRFY) { if (!do_mac_file) { @@ -1341,8 +1339,7 @@ _macwagain: lio = xwrite(dfd, pblk, lrem); memset(tmpdata, 0, sizeof(tmpdata)); } -_nomac: - if (verbose || status_timer || do_stop == TFC_STOP_FULL) print_crypt_status(0); + if (verbose || status_timer || do_stop == YES) print_crypt_status(0); if (do_preserve_time) fcopy_matime(dfd, &s_stat); xclose(sfd);