From 68e1694f6fc96d1f92730d4146afb7020de56cc1 Mon Sep 17 00:00:00 2001 From: buslov Date: Wed, 15 Nov 2017 22:53:48 +0300 Subject: [PATCH] Fix V701 warning from PVS-Studio Static Analyzer realloc() possible leak: when realloc() fails in allocating memory, original pointer 'param.weight_label' is lost. Consider assigning realloc() to a temporary pointer. --- source/cpp/custom_liblinear_wrapper/LibLinear/train.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/cpp/custom_liblinear_wrapper/LibLinear/train.c b/source/cpp/custom_liblinear_wrapper/LibLinear/train.c index 74e457c..6625249 100644 --- a/source/cpp/custom_liblinear_wrapper/LibLinear/train.c +++ b/source/cpp/custom_liblinear_wrapper/LibLinear/train.c @@ -221,7 +221,10 @@ void parse_command_line(int argc, char **argv, char *input_file_name, char *mode case 'w': ++param.nr_weight; - param.weight_label = (int *) realloc(param.weight_label,sizeof(int)*param.nr_weight); + { + int *t = (int *) realloc(param.weight_label,sizeof(int)*param.nr_weight); + if (t) param.weight_label = t; + } param.weight = (double *) realloc(param.weight,sizeof(double)*param.nr_weight); param.weight_label[param.nr_weight-1] = atoi(&argv[i-1][2]); param.weight[param.nr_weight-1] = atof(argv[i]);