Pádraig Brady <[EMAIL PROTECTED]> wrote:
> Jim Meyering wrote:
>> Pádraig Brady <[EMAIL PROTECTED]> wrote:
>>> Jim Meyering wrote:
>>>> Here's a tentative patch:
>> ...
>>> I reviewed all uses of off_t in the code and came up with
>>> an almost identical patch, so I'm happy to go with the above.
>>
>> Hi Pádraig,
>> Thanks for checking.
>> Here's what I've pushed:
>> [I added the IF_LINT initializer]
>
> Hmm, it's probably cleaner to assign *size unconditionally,
> as I had done in my patch, but it doesn't really matter.
But this statement
> + *size = tmp_size;
would set *size to an uninitialized value upon failure.
It's just that gcc doesn't detect it (yet).
> I also noticed this morning that some format specifiers also
> assumed sizeof(off_t) == sizeof(intmax_t) and thus would
> print garbage off the stack if this wasn't the case.
...
By the way, does %zu work reliably everywhere now?
In the past, we've converted such values to strings via umaxtostr,
to accommodate older systems.
For ssize and nsize, I have a slight preference for the
cast-free approach of using %s with imaxtostr.
Do you feel like making those changes?
> @@ -148,7 +152,7 @@ do_ftruncate (int fd, char const *fname, off_t ssize,
> rel_mode_t rel_mode)
> {
> error (0, 0,
> _("overflow in %" PRIdMAX
> - " * %zu byte blocks for file %s"), ssize, blksize,
> + " * %zu byte blocks for file %s"), (intmax_t) ssize,
> blksize,
> quote (fname));
> return 1;
> }
> @@ -229,7 +233,7 @@ do_ftruncate (int fd, char const *fname, off_t ssize,
> rel_mode_t rel_mode)
> {
> error (0, ftruncate_errno,
> _("truncating %s at %" PRIdMAX " bytes"), quote (fname),
> - nsize);
> + (intmax_t) nsize);
> return 1;
> }
> return 0;
_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils