forked from loafle/openapi-generator-original
[C-libcurl] Guard memory free for query parameters to avoid coredump (#5356)
* [C-libcurl] Guard memory free for query parameters to avoid coredump * [C-libcurl] Guard memory free for query parameters to avoid coredump (2nd)
This commit is contained in:
@@ -131,8 +131,8 @@
|
||||
|
||||
// query parameters
|
||||
{{^isListContainer}}
|
||||
char *keyQuery_{{{paramName}}};
|
||||
{{#isPrimitiveType}}{{#isNumber}}{{{dataType}}}{{/isNumber}}{{#isLong}}{{{dataType}}}{{/isLong}}{{#isInteger}}{{{dataType}}}{{/isInteger}}{{#isDouble}}{{{dataType}}}{{/isDouble}}{{#isFloat}}{{{dataType}}}{{/isFloat}}{{#isBoolean}}{{{dataType}}}{{/isBoolean}}{{#isEnum}}{{#isString}}{{{baseName}}}_e{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}{{{dataType}}} *{{/isString}}{{/isEnum}}{{#isByteArray}}{{{dataType}}}{{/isByteArray}}{{#isDate}}{{{dataType}}}{{/isDate}}{{#isDateTime}}{{{dataType}}}{{/isDateTime}}{{#isFile}}{{{dataType}}}{{/isFile}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{^isEnum}}{{{dataType}}}_t *{{/isEnum}}{{/isModel}}{{^isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{/isModel}}{{#isUuid}}{{dataType}} *{{/isUuid}}{{#isEmail}}{{dataType}}{{/isEmail}}{{/isPrimitiveType}} valueQuery_{{{paramName}}};
|
||||
char *keyQuery_{{{paramName}}} = NULL;
|
||||
{{#isPrimitiveType}}{{#isNumber}}{{{dataType}}}{{/isNumber}}{{#isLong}}{{{dataType}}}{{/isLong}}{{#isInteger}}{{{dataType}}}{{/isInteger}}{{#isDouble}}{{{dataType}}}{{/isDouble}}{{#isFloat}}{{{dataType}}}{{/isFloat}}{{#isBoolean}}{{{dataType}}}{{/isBoolean}}{{#isEnum}}{{#isString}}{{{baseName}}}_e{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}{{{dataType}}} *{{/isString}}{{/isEnum}}{{#isByteArray}}{{{dataType}}}{{/isByteArray}}{{#isDate}}{{{dataType}}}{{/isDate}}{{#isDateTime}}{{{dataType}}}{{/isDateTime}}{{#isFile}}{{{dataType}}}{{/isFile}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{^isEnum}}{{{dataType}}}_t *{{/isEnum}}{{/isModel}}{{^isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{/isModel}}{{#isUuid}}{{dataType}} *{{/isUuid}}{{#isEmail}}{{dataType}}{{/isEmail}}{{/isPrimitiveType}} valueQuery_{{{paramName}}} {{#isString}}{{^isEnum}}= NULL{{/isEnum}}{{/isString}};
|
||||
keyValuePair_t *keyPairQuery_{{paramName}} = 0;
|
||||
{{/isListContainer}}
|
||||
if ({{paramName}})
|
||||
@@ -330,13 +330,28 @@
|
||||
{{#queryParams}}
|
||||
{{^isListContainer}}
|
||||
{{#isString}}
|
||||
free(keyQuery_{{{paramName}}});
|
||||
free(valueQuery_{{{paramName}}});
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
if(keyQuery_{{{paramName}}}){
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(valueQuery_{{{paramName}}}){
|
||||
free(valueQuery_{{{paramName}}});
|
||||
valueQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(keyPairQuery_{{{paramName}}}){
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
keyPairQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
{{/isString}}
|
||||
{{^isString}}
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
if(keyQuery_{{{paramName}}}){
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(keyPairQuery_{{{paramName}}}){
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
keyPairQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
{{/isString}}
|
||||
{{/isListContainer}}
|
||||
{{/queryParams}}
|
||||
@@ -403,13 +418,28 @@ end:
|
||||
{{#queryParams}}
|
||||
{{^isListContainer}}
|
||||
{{#isString}}
|
||||
free(keyQuery_{{{paramName}}});
|
||||
free(valueQuery_{{{paramName}}});
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
if(keyQuery_{{{paramName}}}){
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(valueQuery_{{{paramName}}}){
|
||||
free(valueQuery_{{{paramName}}});
|
||||
valueQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(keyPairQuery_{{{paramName}}}){
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
keyPairQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
{{/isString}}
|
||||
{{#isString}}
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
if(keyQuery_{{{paramName}}}){
|
||||
free(keyQuery_{{{paramName}}});
|
||||
keyQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
if(keyPairQuery_{{{paramName}}}){
|
||||
keyValuePair_free(keyPairQuery_{{{paramName}}});
|
||||
keyPairQuery_{{{paramName}}} = NULL;
|
||||
}
|
||||
{{/isString}}
|
||||
{{/isListContainer}}
|
||||
{{/queryParams}}
|
||||
|
||||
Reference in New Issue
Block a user