[ros-dev] New set of potential(?) bugs and its fixes(?)

Aleksey Bragin aleksey at reactos.org
Fri Mar 16 16:27:26 UTC 2012


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.reactos.org/pipermail/ros-dev/attachments/20120316/894b251b/attachment.htm>


More information about the Ros-dev mailing list