From: Christian Blume Date: Sun, 8 Jan 2023 11:38:26 +0000 (+1300) Subject: Set pointers to NULL after memory is freed X-Git-Tag: v246~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=77ec5d7754a665cd279d3df7acd5d81c0cd3a823;p=liblinear Set pointers to NULL after memory is freed Signed-off-by: Sinacam --- diff --git a/linear.cpp b/linear.cpp index ce5895f..70b7927 100644 --- a/linear.cpp +++ b/linear.cpp @@ -3645,10 +3645,10 @@ double get_decfun_rho(const struct model *model_) void free_model_content(struct model *model_ptr) { - if(model_ptr->w != NULL) - free(model_ptr->w); - if(model_ptr->label != NULL) - free(model_ptr->label); + free(model_ptr->w); + model_ptr->w = NULL; + free(model_ptr->label); + model_ptr->label = NULL; } void free_and_destroy_model(struct model **model_ptr_ptr) @@ -3658,17 +3658,18 @@ void free_and_destroy_model(struct model **model_ptr_ptr) { free_model_content(model_ptr); free(model_ptr); + *model_ptr_ptr = NULL; } } void destroy_param(parameter* param) { - if(param->weight_label != NULL) - free(param->weight_label); - if(param->weight != NULL) - free(param->weight); - if(param->init_sol != NULL) - free(param->init_sol); + free(param->weight_label); + param->weight_label = NULL; + free(param->weight); + param->weight = NULL; + free(param->init_sol); + param->init_sol = NULL; } const char *check_parameter(const problem *prob, const parameter *param)