mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
Stop the (optional) dialong control data from being aligned when parsing/writing windows resource files.
binutils* resbin.c: Optional dialog control data immediately follow the control description without alignment. * testsuite/binutils-all/windres/controldata.rc: New test. source. * testsuite/binutils-all/windres/controldata.rsd: New test.
This commit is contained in:
parent
01fabda4d4
commit
6bb21700ab
@ -1,3 +1,11 @@
|
||||
2017-01-17 Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
|
||||
* resbin.c: Optional dialog control data immediately follows
|
||||
the control description without alignment.
|
||||
* testsuite/binutils-all/windres/controldata.rc: New test.
|
||||
source.
|
||||
* testsuite/binutils-all/windres/controldata.rsd: New test.
|
||||
|
||||
2017-01-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/20876
|
||||
|
@ -574,8 +574,6 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
|
||||
dc->data = NULL;
|
||||
else
|
||||
{
|
||||
off = (off + 3) &~ 3;
|
||||
|
||||
if (length < off + datalen)
|
||||
toosmall (_("dialog control data"));
|
||||
|
||||
@ -1582,7 +1580,6 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
|
||||
{
|
||||
rc_uint_type saved_off = off;
|
||||
rc_uint_type old_off;
|
||||
off += (4 - ((off - off_delta) & 3)) & 3;
|
||||
|
||||
old_off = off;
|
||||
off = res_to_bin_rcdata (wrbfd, off, dc->data);
|
||||
@ -1590,10 +1587,10 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
|
||||
old_off = off = saved_off;
|
||||
if (wrbfd)
|
||||
windres_put_16 (wrbfd, dc_rclen, off - old_off);
|
||||
}
|
||||
}
|
||||
if (wrbfd)
|
||||
set_windres_bfd_content (wrbfd, dc_rclen, marker, 2);
|
||||
}
|
||||
}
|
||||
|
||||
if (wrbfd)
|
||||
{
|
||||
|
6
binutils/testsuite/binutils-all/windres/controldata.rc
Normal file
6
binutils/testsuite/binutils-all/windres/controldata.rc
Normal file
@ -0,0 +1,6 @@
|
||||
1 DIALOGEX DISCARDABLE 0, 0, 200, 150
|
||||
STYLE 0
|
||||
BEGIN
|
||||
CONTROL "evenlengthtext", -1, "TESTCONTROL", 0x50810000, 10,10,100,50 { 1,2,3,4,5 }
|
||||
CONTROL "oddlengthtext", -1, "TESTCONTROL", 0x50810000, 10,60,100,50 { 1,2,3,4,5 }
|
||||
END
|
18
binutils/testsuite/binutils-all/windres/controldata.rsd
Normal file
18
binutils/testsuite/binutils-all/windres/controldata.rsd
Normal file
@ -0,0 +1,18 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 d4000000 20000000 ffff0500 ffff0100 .... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 0100ffff 00000000 00000000 00000000 ................
|
||||
0050 02000000 0000c800 96000000 00000000 ................
|
||||
0060 00000000 00000000 00008150 0a000a00 ...........P....
|
||||
0070 64003200 ffffffff 54004500 53005400 d.2.....T.E.S.T.
|
||||
0080 43004f00 4e005400 52004f00 4c000000 C.O.N.T.R.O.L...
|
||||
0090 65007600 65006e00 6c006500 6e006700 e.v.e.n.l.e.n.g.
|
||||
00a0 74006800 74006500 78007400 00000a00 t.h.t.e.x.t.....
|
||||
00b0 01000200 03000400 05000000 00000000 ................
|
||||
00c0 00000000 00008150 0a003c00 64003200 .......P..<.d.2.
|
||||
00d0 ffffffff 54004500 53005400 43004f00 ....T.E.S.T.C.O.
|
||||
00e0 4e005400 52004f00 4c000000 6f006400 N.T.R.O.L...o.d.
|
||||
00f0 64006c00 65006e00 67007400 68007400 d.l.e.n.g.t.h.t.
|
||||
0100 65007800 74000000 0a000100 02000300 e.x.t...........
|
||||
0110 04000500 ....
|
Loading…
Reference in New Issue
Block a user