summaryrefslogtreecommitdiff
path: root/coreutils/dd.c
diff options
context:
space:
mode:
authorDenys Vlasenko2009-08-05 23:16:27 +0200
committerDenys Vlasenko2009-08-05 23:16:27 +0200
commit334fcc8fd4fdad3c52ac0fb591771888325b5bcf (patch)
tree638869a0efdcdd73c7d385b9696ff3ee683f8810 /coreutils/dd.c
parenteecbb547d2884129a2490a449cd3dab328d95e19 (diff)
downloadbusybox-334fcc8fd4fdad3c52ac0fb591771888325b5bcf.zip
busybox-334fcc8fd4fdad3c52ac0fb591771888325b5bcf.tar.gz
dd: conv=noerror should skip read errors using lseek (bug 539)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/dd.c')
-rw-r--r--coreutils/dd.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 38dacc7..5281d81 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -296,6 +296,8 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
goto die_infile;
n = ibs;
bb_simple_perror_msg(infile);
+ /* GNU dd with conv=noerror skips over "bad blocks" */
+ xlseek(ifd, ibs, SEEK_CUR);
}
if ((size_t)n == ibs)
G.in_full++;