This is a new set of potential bugs found via Viva64:

Example 1. ReactOS project. Incorrect printing of a WCHAR-character(  regproc.c 
293) .
static void REGPROC_unescape_string(WCHAR* str)
{
  ...
  default:
    fprintf(stderr,
      "Warning! Unrecognized escape sequence: \\%c'\n",
      str[str_idx]);
  ...
}Reason: To fix the code, we should replace '%c' with '%C' in the format string.

Example 2. ReactOS project. Assignment error. (menu.c 4347)
BOOL WINAPI GetMenuItemInfoA(...)
{
  ...
  mii->cch = mii->cch;
  ...
}
Example 16. ReactOS project. Misprint in a macro.( win32k gradient.c 343 )

#define SWAP(a,b,c)  c = a;\
                     a = b;\
                     a = c
Example 8. ReactOS object. Choosing a wrong object.
void CardButton::DrawRect(HDC hdc, RECT *rect, bool fNormal)
{
  ...
  HPEN hhi = CreatePen(0, 0, MAKE_PALETTERGB(crHighlight));
  HPEN hsh = CreatePen(0, 0, MAKE_PALETTERGB(crShadow));
  ...
  if(fNormal)
    hOld = SelectObject(hdc, hhi);
  else
    hOld = SelectObject(hdc, hhi);
  ...
}
The 'then' statement is equivalent to the 'else' statement. cardlib 
cardbutton.cpp 83
The 'hsh' object is not used, while 'hhi' is used twice. This is the correct 
code:
if(fNormal)
  
    hOld = SelectObject(hdc, hhi);
else

    hOld = SelectObject(hdc, hsh);
Example 10. ReactOS project. Mistake in a variable name.
BOOL APIENTRY
GreStretchBltMask(...)

{

  ...
  
MaskPoint.x += DCMask->ptlDCOrig.x;
  
MaskPoint.y += DCMask->ptlDCOrig.x;
  ...
}
Consider reviewing the correctness of 'x' item's usage. win32k bitblt.c 670

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'm sending here to discuss about them ;).Are they valid? 
Link: http://www.viva64.com/en/a/0079/
                                          
_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to