[ros-dev] New set of potential(?) bugs and its fixes(?)
Timo Kreuzer
timo.kreuzer at web.de
Mon Mar 19 12:50:42 UTC 2012
A correct fix is to change
static const PCHAR Nv11Board = "NV11 (GeForce2) Board";
to
static const CHAR Nv11Board[] = "NV11 (GeForce2) Board";
Also in that case the "const" would start to make sense.
Am 17.03.2012 01:14, schrieb Samuel Serapión:
> countof macro might be indicated
>
> http://msdn.microsoft.com/en-us/library/ms175773%28v=vs.80%29.aspx
>
> On Fri, Mar 16, 2012 at 12:27 PM, Aleksey Bragin<aleksey at reactos.org> wrote:
>> On 16.03.2012 17:49, victor martinez wrote:
>>
>> Example 4. ReactOS project. Incorrect calculation of a string length ( vbe.c
>> 57 )
>>
>> static const PCHAR Nv11Board = "NV11 (GeForce2) Board";
>> static const PCHAR Nv11Chip = "Chip Rev B2";
>> static const PCHAR Nv11Vendor = "NVidia Corporation";
>> BOOLEAN
>> IsVesaBiosOk(...)
>> {
>> ...
>> if (!(strncmp(Vendor, Nv11Vendor, sizeof(Nv11Vendor)))&&
>> !(strncmp(Product, Nv11Board, sizeof(Nv11Board)))&&
>> !(strncmp(Revision, Nv11Chip, sizeof(Nv11Chip)))&&
>> (OemRevision == 0x311))
>> ...
>> }
>>
>> Reason: The error here is this: the sizeof() operator, absolutely
>> inappropriate in this situation, is used to calculate string lengths. The
>> sizeof() operator actually calculates the pointer size instead of the number
>> of bytes in a string.
>>
>> In this case Abragin said this is not a bug.
>>
>> I said it is, but you left IRC too early. Rafal really confirmed by testing.
>>
>> [17:31]<@rafalh> abragin, vicmarcal sizeof returns 4 for me
>> [17:32]<@abragin> then it should be defined as
>> [17:32]<@rafalh> it would work for l static const CHAR Nv11Board[]
>> [17:32]<@abragin> static const CHAR Nv11Board[] = "NV11 (GeForce2) Board";
>> [17:33]<@abragin> yeah
>>
>>
>> _______________________________________________
>> Ros-dev mailing list
>> Ros-dev at reactos.org
>> http://www.reactos.org/mailman/listinfo/ros-dev
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
More information about the Ros-dev
mailing list