[Bug binutils/13606] New: windres bug: "TOOLBAR" resource compiled wrong; version field missing, ints for WORDs => struct layout wrong

2012-01-20 Thread kxroberto at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13606

 Bug #: 13606
   Summary: windres bug: "TOOLBAR" resource compiled wrong;
version field missing, ints for WORDs => struct layout
wrong
   Product: binutils
   Version: 2.21
Status: NEW
  Severity: normal
  Priority: P2
 Component: binutils
AssignedTo: unassig...@sourceware.org
ReportedBy: kxrobe...@gmail.com
Classification: Unclassified


windres.exe omits the version 0x0001 at the beginning of the struct data, uses
32bit values for all (16bit) WORD's it seems and thus all fields of
CToolBarData are somehow shifted/bogus => wWidth becomes 0 => this causes an
app crash later with IDIV zero division error somewhere deep in MFC during
toolbarobj.LoadToolBar()

GNU windres (GNU Binutils) 2.21.1
win32 (32bit)

someresource.rc :

1200 TOOLBAR 21, 20
{
BUTTON  7003
...
BUTTON  7057
}



correct RC.exe compiled resource:

>>> win32api.LoadResource(hg, 241, 1200) # 241=RT_TOOLBAR
'\x01\x00\x15\x00\x14\x00\x1a\x00[\x1bX\x1bY\x1bZ\x1b\x00\x00b\x1bc\x1bd\x1b\x00\x00\\\x9c_\x1b`\x1b\x00\x00\x84\x1c\x00\x00D\x1f]\x1b^\x1b\x00\x00\x8a\x1b\x9e\x1b
\x1c\x00\x00\x8c\x1b\x93\x1b\x91\x1b'


windres compiled:

>>> win32api.LoadResource(hg, 241,1200)
'\x15\x00\x00\x00\x14\x00\x00\x00\x1a\x00\x00\x00[\x1b\x00\x00X\x1b\x00\x00Y\x1b\x00\x00Z\x1b\x00\x00\x00\x00\x00\x00b\x1b\x00\x00c\x1b\x00\x00d\x1b\x00\x00\x00\x00\x00\x00\\\x9c\x00\x00_\x1b'
(wrong length because wItemCount wrong too!)



This is the original MS struct definition (BARTOOL.CPP in MFC/src):


struct CToolBarData
{
WORD wVersion;
WORD wWidth;
WORD wHeight;
WORD wItemCount;
//WORD aItems[wItemCount]

WORD* items()
{ return (WORD*)(this+1); }
};

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/13606] windres bug: "TOOLBAR" resource compiled wrong; version field missing, ints for WORDs => struct layout wrong

2012-01-20 Thread kxroberto at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13606

K.R.  changed:

   What|Removed |Added

 CC||kxroberto at gmail dot com

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils