On Mon, Aug 22, 2016 at 04:02:30PM +0200, Reda Sallahi wrote: > On Mon, Aug 22, 2016 at 09:35:26AM -0400, Stefan Hajnoczi wrote: > > On Mon, Aug 22, 2016 at 09:55:13AM +0200, Reda Sallahi wrote: > > > @@ -4325,20 +4388,43 @@ static int img_dd(int argc, char **argv) > > > > > > for (out_pos = out.offset * obsz; in_pos < size; block_count++) { > > > int in_ret, out_ret; > > > + bsz = in.bsz; > > > > > > if (in_pos + in.bsz > size) { > > > - in_ret = blk_pread(blk1, in_pos, in.buf, size - in_pos); > > > - } else { > > > - in_ret = blk_pread(blk1, in_pos, in.buf, in.bsz); > > > + bsz = size - in_pos; > > > + } > > > + > > > + if (dd.conv & C_SYNC) { > > > + memset(in.buf, 0, in.bsz); > > > } > > > > Why is memset necessary? > > When we set conv=noerror,sync sync tells dd to pad each block with NULs so > that if there is an error it preserves the size of the input read.
Ah, I see. Stefan
signature.asc
Description: PGP signature