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<[email protected]> 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 [email protected] http://www.reactos.org/mailman/listinfo/ros-dev_______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev
_______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev
