Wrc did not check any IDs which are only 16 bit. Common dialogs had some

IDs larger and that caused problems. This is now solved (I hope).
This commit is contained in:
Bertho Stultiens 1999-08-18 18:23:34 +00:00 committed by Alexandre Julliard
parent 7760e7fbff
commit c13c3f9ba8
4 changed files with 21 additions and 2 deletions

View File

@ -357,7 +357,12 @@ aa aa a2 00 43 02'}
#if 0
/*
* DO NOT ENABLE!
* These IDs are out of range.
*/
/* NOTE: Please, do not translate these texts yet! */
STRINGTABLE DISCARDABLE
@ -392,3 +397,5 @@ Please enter a value between %d and %d"
PRINTER_STATUS_SERVER_UNKNOWN "Print server unknown"
PRINTER_STATUS_POWER_SAVE "Power safe mode"
}
#endif

View File

@ -1,3 +1,11 @@
---------------------------------------------------------------------------
Version 1.0.15 (13-Aug-1999)
Bertho Stultiens <bertho@akhphd.au.dk>
- Bugfix: IDs were not checked which resulted in numbers > 2^16-1 being
accepted as IDs. This resulted in duplicate IDs and all other sort of
trouble.
---------------------------------------------------------------------------
Version 1.0.14 (08-Aug-1999)

View File

@ -433,6 +433,8 @@ resource
* Get a valid name/id
*/
nameid : expr {
if($1 > 65535 || $1 < -32768)
yyerror("Resource's ID out of range (%d)", $1);
$$ = new_name_id();
$$->type = name_ord;
$$->name.i_name = $1;
@ -1305,6 +1307,8 @@ strings : /* Empty */ { $$ = NULL; }
| strings expr opt_comma tSTRING {
int i;
assert(tagstt != NULL);
if($2 > 65535 || $2 < -32768)
yyerror("Stringtable entry's ID out of range (%d)", $2);
/* Search for the ID */
for(i = 0; i < tagstt->nentries; i++)
{

View File

@ -12,8 +12,8 @@
#include "wrctypes.h"
#endif
#define WRC_VERSION "1.0.14"
#define WRC_RELEASEDATE "(08-Aug-1999)"
#define WRC_VERSION "1.0.15"
#define WRC_RELEASEDATE "(13-Aug-1999)"
#define WRC_FULLVERSION WRC_VERSION " " WRC_RELEASEDATE
/* Only used in heavy debugging sessions */