bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: truncate.c fails to compile on make distcheck


From: Jim Meyering
Subject: Re: truncate.c fails to compile on make distcheck
Date: Sat, 28 Jun 2008 15:53:30 +0200

Pádraig Brady <address@hidden> wrote:

> Paul Eggert wrote:
>> Pádraig Brady <address@hidden> writes:
>>
>>> diff --git a/src/truncate.c b/src/truncate.c
>>> index 02d4102..fd321c6 100644
>>> --- a/src/truncate.c
>>> +++ b/src/truncate.c
>>> @@ -189,9 +189,9 @@ do_ftruncate (int fd, char const *fname, off_t ssize, 
>>> rel_mode_t rel_mode)
>>>          }
>>>
>>>        if (rel_mode == rm_min)
>>> -        nsize = MAX (fsize, ssize);
>>> +        nsize = MAX (fsize, (uintmax_t) ssize);
>>>        else if (rel_mode == rm_max)
>>> -        nsize = MIN (fsize, ssize);
>>> +        nsize = MIN (fsize, (uintmax_t) ssize);
>>>        else if (rel_mode == rm_rdn)
>>>          /* 0..ssize-1 -> 0 */
>>>          nsize = (fsize / ssize) * ssize;
>>
>> This patch does not look right to me.  If ssize is negative, it screws up.
>>
>> Can ssize be negative?  Yes it can.
>
> Not when rel_mode is rm_min or rm_max.
>
>> This indicates a bug in the underlying code, which GCC was right to
>> warn us about, and which we should not have worked around by inserting
>> casts blindly.
>
> As I said in the patch the casts were to confirm the intent,
> rather than just to silence the errors.

I see the intent, but we can sneak past the check
that detects this:

    $ ./truncate -s '<-9' k
    ./truncate: multiple relative modifiers specified
    Try `./truncate --help' for more information.

by adding a space before the "-":

    $ ./truncate -s '< -9' k && echo whoops
    whoops




reply via email to

[Prev in Thread] Current Thread [Next in Thread]