forked from loafle/openapi-generator-original
[C][Client] Fix coredump when releasing the memory of an incompleted resource (#8190)
This commit is contained in:
@@ -214,59 +214,92 @@ void {{classname}}_free({{classname}}_t *{{classname}}) {
|
||||
{{^isPrimitiveType}}
|
||||
{{#isModel}}
|
||||
{{^isEnum}}
|
||||
{{{complexType}}}_free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
{{{complexType}}}_free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isUuid}}
|
||||
{{#isEmail}}
|
||||
free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isEmail}}
|
||||
{{#isFreeFormObject}}
|
||||
object_free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
object_free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isPrimitiveType}}
|
||||
{{#isPrimitiveType}}
|
||||
{{^isEnum}}
|
||||
{{#isString}}
|
||||
free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isString}}
|
||||
{{/isEnum}}
|
||||
{{#isBinary}}
|
||||
free({{{classname}}}->{{{name}}}->data);
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}}->data);
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isBinary}}
|
||||
{{#isDate}}
|
||||
free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isDate}}
|
||||
{{#isDateTime}}
|
||||
free({{{classname}}}->{{{name}}});
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isDateTime}}
|
||||
{{/isPrimitiveType}}
|
||||
{{/isContainer}}
|
||||
{{#isContainer}}
|
||||
{{#isArray}}
|
||||
{{#isPrimitiveType}}
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
free(listEntry->data);
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
free(listEntry->data);
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{/isPrimitiveType}}
|
||||
{{^isPrimitiveType}}
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
{{complexType}}_free(listEntry->data);
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
{{complexType}}_free(listEntry->data);
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{/isPrimitiveType}}
|
||||
{{/isArray}}
|
||||
{{#isMap}}
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
keyValuePair_t *localKeyValue = (keyValuePair_t*) listEntry->data;
|
||||
free (localKeyValue->key);
|
||||
free (localKeyValue->value);
|
||||
keyValuePair_free(localKeyValue);
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
list_ForEach(listEntry, {{classname}}->{{name}}) {
|
||||
keyValuePair_t *localKeyValue = (keyValuePair_t*) listEntry->data;
|
||||
free (localKeyValue->key);
|
||||
free (localKeyValue->value);
|
||||
keyValuePair_free(localKeyValue);
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
list_free({{classname}}->{{name}});
|
||||
{{/isMap}}
|
||||
{{/isContainer}}
|
||||
{{/vars}}
|
||||
|
||||
@@ -27,8 +27,14 @@ void api_response_free(api_response_t *api_response) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
free(api_response->type);
|
||||
free(api_response->message);
|
||||
if (api_response->type) {
|
||||
free(api_response->type);
|
||||
api_response->type = NULL;
|
||||
}
|
||||
if (api_response->message) {
|
||||
free(api_response->message);
|
||||
api_response->message = NULL;
|
||||
}
|
||||
free(api_response);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,10 @@ void category_free(category_t *category) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
free(category->name);
|
||||
if (category->name) {
|
||||
free(category->name);
|
||||
category->name = NULL;
|
||||
}
|
||||
free(category);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,10 @@ void order_free(order_t *order) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
free(order->ship_date);
|
||||
if (order->ship_date) {
|
||||
free(order->ship_date);
|
||||
order->ship_date = NULL;
|
||||
}
|
||||
free(order);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,16 +50,28 @@ void pet_free(pet_t *pet) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
category_free(pet->category);
|
||||
free(pet->name);
|
||||
list_ForEach(listEntry, pet->photo_urls) {
|
||||
free(listEntry->data);
|
||||
if (pet->category) {
|
||||
category_free(pet->category);
|
||||
pet->category = NULL;
|
||||
}
|
||||
list_free(pet->photo_urls);
|
||||
list_ForEach(listEntry, pet->tags) {
|
||||
tag_free(listEntry->data);
|
||||
if (pet->name) {
|
||||
free(pet->name);
|
||||
pet->name = NULL;
|
||||
}
|
||||
if (pet->photo_urls) {
|
||||
list_ForEach(listEntry, pet->photo_urls) {
|
||||
free(listEntry->data);
|
||||
}
|
||||
list_free(pet->photo_urls);
|
||||
pet->photo_urls = NULL;
|
||||
}
|
||||
if (pet->tags) {
|
||||
list_ForEach(listEntry, pet->tags) {
|
||||
tag_free(listEntry->data);
|
||||
}
|
||||
list_free(pet->tags);
|
||||
pet->tags = NULL;
|
||||
}
|
||||
list_free(pet->tags);
|
||||
free(pet);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,10 @@ void tag_free(tag_t *tag) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
free(tag->name);
|
||||
if (tag->name) {
|
||||
free(tag->name);
|
||||
tag->name = NULL;
|
||||
}
|
||||
free(tag);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,12 +37,30 @@ void user_free(user_t *user) {
|
||||
return ;
|
||||
}
|
||||
listEntry_t *listEntry;
|
||||
free(user->username);
|
||||
free(user->first_name);
|
||||
free(user->last_name);
|
||||
free(user->email);
|
||||
free(user->password);
|
||||
free(user->phone);
|
||||
if (user->username) {
|
||||
free(user->username);
|
||||
user->username = NULL;
|
||||
}
|
||||
if (user->first_name) {
|
||||
free(user->first_name);
|
||||
user->first_name = NULL;
|
||||
}
|
||||
if (user->last_name) {
|
||||
free(user->last_name);
|
||||
user->last_name = NULL;
|
||||
}
|
||||
if (user->email) {
|
||||
free(user->email);
|
||||
user->email = NULL;
|
||||
}
|
||||
if (user->password) {
|
||||
free(user->password);
|
||||
user->password = NULL;
|
||||
}
|
||||
if (user->phone) {
|
||||
free(user->phone);
|
||||
user->phone = NULL;
|
||||
}
|
||||
free(user);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user