GNU bug report logs -
#7362
dd strangeness
Previous Next
Reported by: Lucia Rotger <lucia <at> aircomp.aero>
Date: Wed, 10 Nov 2010 10:26:01 UTC
Severity: normal
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
Message #99 received at 7362 <at> debbugs.gnu.org (full text, mbox):
On 04/03/11 18:04, Paul Eggert wrote:
> On 03/04/2011 02:09 AM, Pádraig Brady wrote:
>> On 04/03/11 07:44, Paul Eggert wrote:
>>> + /* If bs=SIZE is given and iflag=fullblock is not, warn if a
>>
>> Do you check that bs= is specified?
>
> I meant to, but I inadvertently deleted that part of the change,
> which meant that the code didn't implement the comment correctly.
> Sorry about that; see below.
>
>> Anyway, with this patch the following slightly contrived example will
>> warn:
>
> The following further patch, which fixes the abovementioned typo,
> should address that problem.
>
> --- a/src/dd.c
> +++ b/src/dd.c
> @@ -814,7 +814,7 @@ iread (int fd, char *buf, size_t size)
> static bool warned;
> static ssize_t prev_nread;
>
> - if (! warned && iread_fnc == iread
> + if (! warned && ! (conversions_mask & C_TWOBUFS) && iread_fnc ==
> iread
> && 0 < prev_nread && prev_nread < size
Looks good!
I can't think of an example where this might erroneously warn.
> && (skip_records
> || (0 < max_records && max_records < (uintmax_t) -1)))
If we more aggressively warn by removing the check for the counts above,
then we would directly address http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8171
Unfortunately that would give unwanted warnings though, in some cases.
cheers,
Pádraig.
This bug report was last modified 14 years and 168 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.