Don't use pointer to freed memory.

svn path=/trunk/; revision=14684
This commit is contained in:
Filip Navara 2005-04-18 21:50:08 +00:00
parent e2e4bed006
commit 08807e03af
4 changed files with 4281 additions and 3395 deletions

View file

@ -1,5 +1,11 @@
ChangeLog ChangeLog
2005-04-18 navaraf
tools/widl/parser.y
Don't use pointer to freed memory.
2005-04-17 ekohl 2005-04-17 ekohl
tools/widl/server.c tools/widl/server.c

View file

@ -726,7 +726,6 @@ pointer_type:
structdef: tSTRUCT t_ident '{' fields '}' { $$ = get_typev(RPC_FC_STRUCT, $2, tsSTRUCT); structdef: tSTRUCT t_ident '{' fields '}' { $$ = get_typev(RPC_FC_STRUCT, $2, tsSTRUCT);
/* overwrite RPC_FC_STRUCT with a more exact type */ /* overwrite RPC_FC_STRUCT with a more exact type */
$$->type = get_struct_type( $4 ); $$->type = get_struct_type( $4 );
$$->name = $2->name;
$$->fields = $4; $$->fields = $4;
$$->defined = TRUE; $$->defined = TRUE;
if(in_typelib) if(in_typelib)

File diff suppressed because it is too large Load diff

View file

@ -1,138 +1,307 @@
typedef union { /* A Bison parser, made by GNU Bison 1.875. */
attr_t *attr;
expr_t *expr; /* Skeleton parser for Yacc-like parsing with Bison,
type_t *type; Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
typeref_t *tref;
var_t *var; This program is free software; you can redistribute it and/or modify
func_t *func; it under the terms of the GNU General Public License as published by
ifref_t *ifref; the Free Software Foundation; either version 2, or (at your option)
class_t *clas; any later version.
char *str;
UUID *uuid; This program is distributed in the hope that it will be useful,
unsigned int num; but WITHOUT ANY WARRANTY; without even the implied warranty of
} YYSTYPE; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#define aIDENTIFIER 257 GNU General Public License for more details.
#define aKNOWNTYPE 258
#define aNUM 259 You should have received a copy of the GNU General Public License
#define aHEXNUM 260 along with this program; if not, write to the Free Software
#define aSTRING 261 Foundation, Inc., 59 Temple Place - Suite 330,
#define aUUID 262 Boston, MA 02111-1307, USA. */
#define aEOF 263
#define SHL 264 /* As a special exception, when this file is copied by Bison into a
#define SHR 265 Bison output file, you may use that output file without restriction.
#define tAGGREGATABLE 266 This special exception was added by the Free Software Foundation
#define tALLOCATE 267 in version 1.24 of Bison. */
#define tAPPOBJECT 268
#define tARRAYS 269 /* Tokens. */
#define tASYNC 270 #ifndef YYTOKENTYPE
#define tASYNCUUID 271 # define YYTOKENTYPE
#define tAUTOHANDLE 272 /* Put the tokens into the symbol table, so that GDB and other debuggers
#define tBINDABLE 273 know about them. */
#define tBOOLEAN 274 enum yytokentype {
#define tBROADCAST 275 aIDENTIFIER = 258,
#define tBYTE 276 aKNOWNTYPE = 259,
#define tBYTECOUNT 277 aNUM = 260,
#define tCALLAS 278 aHEXNUM = 261,
#define tCALLBACK 279 aSTRING = 262,
#define tCASE 280 aUUID = 263,
#define tCDECL 281 aEOF = 264,
#define tCHAR 282 SHL = 265,
#define tCOCLASS 283 SHR = 266,
#define tCODE 284 tAGGREGATABLE = 267,
#define tCOMMSTATUS 285 tALLOCATE = 268,
#define tCONST 286 tAPPOBJECT = 269,
#define tCONTEXTHANDLE 287 tARRAYS = 270,
#define tCONTEXTHANDLENOSERIALIZE 288 tASYNC = 271,
#define tCONTEXTHANDLESERIALIZE 289 tASYNCUUID = 272,
#define tCONTROL 290 tAUTOHANDLE = 273,
#define tCPPQUOTE 291 tBINDABLE = 274,
#define tDEFAULT 292 tBOOLEAN = 275,
#define tDEFAULTVALUE 293 tBROADCAST = 276,
#define tDISPINTERFACE 294 tBYTE = 277,
#define tDLLNAME 295 tBYTECOUNT = 278,
#define tDOUBLE 296 tCALLAS = 279,
#define tDUAL 297 tCALLBACK = 280,
#define tENDPOINT 298 tCASE = 281,
#define tENTRY 299 tCDECL = 282,
#define tENUM 300 tCHAR = 283,
#define tERRORSTATUST 301 tCOCLASS = 284,
#define tEXPLICITHANDLE 302 tCODE = 285,
#define tEXTERN 303 tCOMMSTATUS = 286,
#define tFLOAT 304 tCONST = 287,
#define tHANDLE 305 tCONTEXTHANDLE = 288,
#define tHANDLET 306 tCONTEXTHANDLENOSERIALIZE = 289,
#define tHELPCONTEXT 307 tCONTEXTHANDLESERIALIZE = 290,
#define tHELPFILE 308 tCONTROL = 291,
#define tHELPSTRING 309 tCPPQUOTE = 292,
#define tHELPSTRINGCONTEXT 310 tDEFAULT = 293,
#define tHELPSTRINGDLL 311 tDEFAULTVALUE = 294,
#define tHIDDEN 312 tDISPINTERFACE = 295,
#define tHYPER 313 tDLLNAME = 296,
#define tID 314 tDOUBLE = 297,
#define tIDEMPOTENT 315 tDUAL = 298,
#define tIIDIS 316 tENDPOINT = 299,
#define tIMPLICITHANDLE 317 tENTRY = 300,
#define tIMPORT 318 tENUM = 301,
#define tIMPORTLIB 319 tERRORSTATUST = 302,
#define tIN 320 tEXPLICITHANDLE = 303,
#define tINCLUDE 321 tEXTERN = 304,
#define tINLINE 322 tFLOAT = 305,
#define tINPUTSYNC 323 tHANDLE = 306,
#define tINT 324 tHANDLET = 307,
#define tINT64 325 tHELPCONTEXT = 308,
#define tINTERFACE 326 tHELPFILE = 309,
#define tLENGTHIS 327 tHELPSTRING = 310,
#define tLIBRARY 328 tHELPSTRINGCONTEXT = 311,
#define tLOCAL 329 tHELPSTRINGDLL = 312,
#define tLONG 330 tHIDDEN = 313,
#define tMETHODS 331 tHYPER = 314,
#define tMODULE 332 tID = 315,
#define tNONCREATABLE 333 tIDEMPOTENT = 316,
#define tOBJECT 334 tIIDIS = 317,
#define tODL 335 tIMPLICITHANDLE = 318,
#define tOLEAUTOMATION 336 tIMPORT = 319,
#define tOPTIONAL 337 tIMPORTLIB = 320,
#define tOUT 338 tIN = 321,
#define tPOINTERDEFAULT 339 tINCLUDE = 322,
#define tPROPERTIES 340 tINLINE = 323,
#define tPROPGET 341 tINPUTSYNC = 324,
#define tPROPPUT 342 tINT = 325,
#define tPROPPUTREF 343 tINT64 = 326,
#define tPTR 344 tINTERFACE = 327,
#define tPUBLIC 345 tLENGTHIS = 328,
#define tREADONLY 346 tLIBRARY = 329,
#define tREF 347 tLOCAL = 330,
#define tRESTRICTED 348 tLONG = 331,
#define tRETVAL 349 tMETHODS = 332,
#define tSHORT 350 tMODULE = 333,
#define tSIGNED 351 tNONCREATABLE = 334,
#define tSIZEIS 352 tOBJECT = 335,
#define tSIZEOF 353 tODL = 336,
#define tSMALL 354 tOLEAUTOMATION = 337,
#define tSOURCE 355 tOPTIONAL = 338,
#define tSTDCALL 356 tOUT = 339,
#define tSTRING 357 tPOINTERDEFAULT = 340,
#define tSTRUCT 358 tPROPERTIES = 341,
#define tSWITCH 359 tPROPGET = 342,
#define tSWITCHIS 360 tPROPPUT = 343,
#define tSWITCHTYPE 361 tPROPPUTREF = 344,
#define tTRANSMITAS 362 tPTR = 345,
#define tTYPEDEF 363 tPUBLIC = 346,
#define tUNION 364 tREADONLY = 347,
#define tUNIQUE 365 tREF = 348,
#define tUNSIGNED 366 tRESTRICTED = 349,
#define tUUID 367 tRETVAL = 350,
#define tV1ENUM 368 tSHORT = 351,
#define tVARARG 369 tSIGNED = 352,
#define tVERSION 370 tSIZEIS = 353,
#define tVOID 371 tSIZEOF = 354,
#define tWCHAR 372 tSMALL = 355,
#define tWIREMARSHAL 373 tSOURCE = 356,
#define tPOINTERTYPE 374 tSTDCALL = 357,
#define COND 375 tSTRING = 358,
#define CAST 376 tSTRUCT = 359,
#define PPTR 377 tSWITCH = 360,
#define NEG 378 tSWITCHIS = 361,
tSWITCHTYPE = 362,
tTRANSMITAS = 363,
extern YYSTYPE yylval; tTYPEDEF = 364,
tUNION = 365,
tUNIQUE = 366,
tUNSIGNED = 367,
tUUID = 368,
tV1ENUM = 369,
tVARARG = 370,
tVERSION = 371,
tVOID = 372,
tWCHAR = 373,
tWIREMARSHAL = 374,
tPOINTERTYPE = 375,
COND = 376,
CAST = 377,
PPTR = 378,
NEG = 379
};
#endif
#define aIDENTIFIER 258
#define aKNOWNTYPE 259
#define aNUM 260
#define aHEXNUM 261
#define aSTRING 262
#define aUUID 263
#define aEOF 264
#define SHL 265
#define SHR 266
#define tAGGREGATABLE 267
#define tALLOCATE 268
#define tAPPOBJECT 269
#define tARRAYS 270
#define tASYNC 271
#define tASYNCUUID 272
#define tAUTOHANDLE 273
#define tBINDABLE 274
#define tBOOLEAN 275
#define tBROADCAST 276
#define tBYTE 277
#define tBYTECOUNT 278
#define tCALLAS 279
#define tCALLBACK 280
#define tCASE 281
#define tCDECL 282
#define tCHAR 283
#define tCOCLASS 284
#define tCODE 285
#define tCOMMSTATUS 286
#define tCONST 287
#define tCONTEXTHANDLE 288
#define tCONTEXTHANDLENOSERIALIZE 289
#define tCONTEXTHANDLESERIALIZE 290
#define tCONTROL 291
#define tCPPQUOTE 292
#define tDEFAULT 293
#define tDEFAULTVALUE 294
#define tDISPINTERFACE 295
#define tDLLNAME 296
#define tDOUBLE 297
#define tDUAL 298
#define tENDPOINT 299
#define tENTRY 300
#define tENUM 301
#define tERRORSTATUST 302
#define tEXPLICITHANDLE 303
#define tEXTERN 304
#define tFLOAT 305
#define tHANDLE 306
#define tHANDLET 307
#define tHELPCONTEXT 308
#define tHELPFILE 309
#define tHELPSTRING 310
#define tHELPSTRINGCONTEXT 311
#define tHELPSTRINGDLL 312
#define tHIDDEN 313
#define tHYPER 314
#define tID 315
#define tIDEMPOTENT 316
#define tIIDIS 317
#define tIMPLICITHANDLE 318
#define tIMPORT 319
#define tIMPORTLIB 320
#define tIN 321
#define tINCLUDE 322
#define tINLINE 323
#define tINPUTSYNC 324
#define tINT 325
#define tINT64 326
#define tINTERFACE 327
#define tLENGTHIS 328
#define tLIBRARY 329
#define tLOCAL 330
#define tLONG 331
#define tMETHODS 332
#define tMODULE 333
#define tNONCREATABLE 334
#define tOBJECT 335
#define tODL 336
#define tOLEAUTOMATION 337
#define tOPTIONAL 338
#define tOUT 339
#define tPOINTERDEFAULT 340
#define tPROPERTIES 341
#define tPROPGET 342
#define tPROPPUT 343
#define tPROPPUTREF 344
#define tPTR 345
#define tPUBLIC 346
#define tREADONLY 347
#define tREF 348
#define tRESTRICTED 349
#define tRETVAL 350
#define tSHORT 351
#define tSIGNED 352
#define tSIZEIS 353
#define tSIZEOF 354
#define tSMALL 355
#define tSOURCE 356
#define tSTDCALL 357
#define tSTRING 358
#define tSTRUCT 359
#define tSWITCH 360
#define tSWITCHIS 361
#define tSWITCHTYPE 362
#define tTRANSMITAS 363
#define tTYPEDEF 364
#define tUNION 365
#define tUNIQUE 366
#define tUNSIGNED 367
#define tUUID 368
#define tV1ENUM 369
#define tVARARG 370
#define tVERSION 371
#define tVOID 372
#define tWCHAR 373
#define tWIREMARSHAL 374
#define tPOINTERTYPE 375
#define COND 376
#define CAST 377
#define PPTR 378
#define NEG 379
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 106 "parser.y"
typedef union YYSTYPE {
attr_t *attr;
expr_t *expr;
type_t *type;
typeref_t *tref;
var_t *var;
func_t *func;
ifref_t *ifref;
class_t *clas;
char *str;
UUID *uuid;
unsigned int num;
} YYSTYPE;
/* Line 1248 of yacc.c. */
#line 298 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
extern YYSTYPE yylval;