Re: [hackers] Re: [sbase][PATCH] dd: fix for ibs * count < obs

From: Tom Schwindl <schwindl_AT_posteo.de>
Date: Thu, 22 Dec 2022 10:49:32 +0000

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
> > > _AT_@ -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
Received on Thu Dec 22 2022 - 11:49:32 CET

This archive was generated by hypermail 2.3.0 : Thu Dec 22 2022 - 12:00:35 CET