Hi, On Thu Dec 22, 2022 at 2:00 AM CET, phoebos wrote: > I thought this message had gone through but it doesn't appear in the > mailing list archive. I added some context to my patch below, and would > appreciate any feedback or confirmation that the email got through? > > Thanks > > On Tue, Nov 29, 2022 at 22:27:59 +0000, phoebos wrote: > > Perhaps I should add some context. > > > > Running: > > > > yes | dd ibs=1 count=1 > > > > reports that 512 bytes are read: > > > > 512+0 records in > > 1+0 records out > > > > Only one byte should be read, as occurs with GNU and busybox dd: > > > > 1+0 records in > > 0+1 records out > > > > I believe the reason for this bug in sbase is because of the comparison > > with obs in the below loop, which overlooks cases such as these. > > > > All feedback is welcome. Is this an appropriate fix to the bug? > > > > phoebos > > > > On Tue, Nov 22, 2022 at 16:28:35 +0000, phoebos wrote: > > > Previously, running `dd ibs=1 count=1` read 512 bytes rather than 1. > > > --- > > > dd.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/dd.c b/dd.c > > > index 6061048..4081eca 100644 > > > --- a/dd.c > > > +++ b/dd.c > > > @@ -174,7 +174,7 @@ main(int argc, char *argv[]) > > > /* XXX: handle non-seekable files */ > > > } > > > while (!eof && (count == -1 || ifull + ipart < count)) { > > > - while (ipos - opos < obs) { > > > + while (ipos - opos < obs && ifull + ipart < count) { > > > ret = read(ifd, buf + ipos, ibs); > > > if (ret == 0) { > > > eof = 1; > > > -- > > > 2.38.1 > > >
Your previous message went through, at least for me. The archive is a bit buggy and sometimes misses some mails. As for your diff, sbase is pretty inactive and I don't know how often a maintainer checks the mailing list for patches. -- Best Regards, Tom Schwindl