]> granicus.if.org Git - liblinear/commitdiff
Set pointers to NULL after memory is freed
authorChristian Blume <chr.blume@gmail.com>
Sun, 8 Jan 2023 11:38:26 +0000 (00:38 +1300)
committerSinacam <stinkingmadgod@gmail.com>
Sat, 28 Jan 2023 17:32:41 +0000 (01:32 +0800)
Signed-off-by: Sinacam <stinkingmadgod@gmail.com>
linear.cpp

index ce5895f70cc998b138e4f5e6ee35839c348efaa2..70b79270a25adada4d8d83d575921e22477f276e 100644 (file)
@@ -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)