Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.2:Update
sblim-sfcb
0340-bnc458541-2479947-valueList.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0340-bnc458541-2479947-valueList.patch of Package sblim-sfcb
--- cimXmlOps.y.orig 2008-08-14 02:24:54.000000000 +0200 +++ cimXmlOps.y 2009-01-16 21:02:32.000000000 +0100 @@ -43,6 +43,10 @@ #define YYLEX_PARAM parm #define YYERROR_VERBOSE 1 +/* Maximum size for valueList and valueRefList */ + +#define MAX_LIST_SIZE 512 + extern int yyerror(char*); extern int yylex (void *lvalp, ParserControl *parm); @@ -2656,15 +2660,19 @@ value { $$.next=1; - $$.max=64; - $$.values=(XtokValue*)malloc(sizeof(XtokValue)*64); + $$.max=MAX_LIST_SIZE; + $$.values=(XtokValue*)malloc(sizeof(XtokValue)*$$.max); $$.values[0]=$1; } | valueList value { + if ($$.next >= $$.max) + yyerror("Too many values in valueList"); + else { $$.values[$$.next]=$2; $$.next++; } + } ; valueReference @@ -2696,15 +2704,19 @@ : valueReference { $$.next=1; - $$.max=64; - $$.values=(XtokValueReference*)malloc(sizeof(XtokValueReference)*64); + $$.max=MAX_LIST_SIZE; + $$.values=(XtokValueReference*)malloc(sizeof(XtokValueReference)*$$.max); $$.values[0]=$1; } | valueRefList valueReference { + if ($$.next >= $$.max) + yyerror("Too many values in valueRefList"); + else { $$.values[$$.next]=$2; $$.next++; } + } ; boolValue @@ -2745,8 +2757,8 @@ : keyBinding { $$.next=1; - $$.max=16; - $$.keyBindings=(XtokKeyBinding*)calloc(16,sizeof(XtokKeyBinding)); + $$.max=32; + $$.keyBindings=(XtokKeyBinding*)calloc($$.max,sizeof(XtokKeyBinding)); $$.keyBindings[0].name=$1.name; $$.keyBindings[0].value=$1.value; $$.keyBindings[0].type=$1.type; @@ -2754,12 +2766,16 @@ } | keyBindings keyBinding { + if ($$.next >= $$.max) + yyerror("Too many keyBindings"); + else { $$.keyBindings[$$.next].name=$2.name; $$.keyBindings[$$.next].value=$2.value; $$.keyBindings[$$.next].type=$2.type; $$.keyBindings[$$.next].ref=$2.ref; $$.next++; } + } ; keyBinding
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor