[PATCH] shell32: use flexible arrays to avoid fortify failures

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Mon Sep 20 07:24:52 CDT 2010


Hi,

Alexandre Julliard wrote:
>> it needs to be "foo[]".  ANYSIZE_ARRAY is defined as 1
>True, you don't want to change the public one, but you can define a
>shell32-specific version of it. At least then it looks like a normal
>array declaration.

Thank you for pointing to ANYSIZE_ARRAY.

Why not cope with the way MS people recommend and use
foo[ANYSIZE_ARRAY], together with the FIELD_OFFSET() macro?
I found this article useful:
http://blogs.msdn.com/b/oldnewthing/archive/2004/08/26/220873.aspx
and made a note to use that in future patches.
It explains why ANYSIZE_ARRAY MUST be 1.

Should somebody submit patches to replace foo[1] with foo[ANYSIZE_ARRAY]
where needed in Wine's include/*.h ?
E.g. wingdi.h: BITMAPINFO comes to mind, it uses
    RGBQUAD          bmiColors[1];
http://source.winehq.org/source/include/wingdi.h#L1912
ANYSIZE_ARRAY would be a perfect match here.

Perhaps one can teach fortify about ANYSIZE_ARRAY?

Regards,
 Jörg Höhle


More information about the wine-devel mailing list