diff -up netpbm-10.35.58/converter/other/fiasco/codec/coder.c.leaks netpbm-10.35.58/converter/other/fiasco/codec/coder.c --- netpbm-10.35.58/converter/other/fiasco/codec/coder.c.leaks 2010-02-13 18:54:22 +0300 +++ netpbm-10.35.58/converter/other/fiasco/codec/coder.c 2010-02-13 19:01:46 +0300 @@ -706,7 +706,7 @@ unsigned display; /* picture number in display order */ int future_display; /* number of future reference */ int frame; /* current frame number */ - char *image_name; + char *image_name = NULL; /* image name of current frame. File name or "-" for Standard Input */ image_t *reconst = NULL; /* decoded reference image */ bool_t future_frame = NO; /* YES if last frame was in future */ @@ -765,6 +765,7 @@ else { future_display = i; + free(image_name); image_name = name; type = pattern2type (i, c->options.pattern); } @@ -869,6 +870,8 @@ c->mt->original = NULL; remove_states (wfa->basis_states, wfa); /* Clear WFA structure */ + + free(image_name); } if (reconst) diff -up netpbm-10.35.58/converter/other/fiasco/codec/subdivide.c.leaks netpbm-10.35.58/converter/other/fiasco/codec/subdivide.c --- netpbm-10.35.58/converter/other/fiasco/codec/subdivide.c.leaks 2009-01-19 09:23:57.000000000 +0100 +++ netpbm-10.35.58/converter/other/fiasco/codec/subdivide.c 2009-03-26 08:35:28.000000000 +0100 @@ -416,16 +416,6 @@ subdivide (real_t max_costs, unsigned ba * Return MAXCOSTS if neither a linear combination nor a recursive * subdivision yield costs less than 'max_costs' */ - c->domain_pool->model_free (c->domain_pool->model); - c->d_domain_pool->model_free (c->d_domain_pool->model); - c->domain_pool->model_free (lc_domain_model); - c->d_domain_pool->model_free (lc_d_domain_model); - - c->coeff->model_free (c->coeff->model); - c->d_coeff->model_free (c->d_coeff->model); - c->coeff->model_free (lc_coeff_model); - c->d_coeff->model_free (lc_d_coeff_model); - c->domain_pool->model = domain_model; c->d_domain_pool->model = d_domain_model; c->coeff->model = coeff_model; @@ -445,16 +435,6 @@ subdivide (real_t max_costs, unsigned ba * are stored already in 'range', so revert the probability models * only. */ - c->domain_pool->model_free (c->domain_pool->model); - c->d_domain_pool->model_free (c->d_domain_pool->model); - c->domain_pool->model_free (domain_model); - c->d_domain_pool->model_free (d_domain_model); - - c->coeff->model_free (c->coeff->model); - c->d_coeff->model_free (c->d_coeff->model); - c->coeff->model_free (coeff_model); - c->d_coeff->model_free (d_coeff_model); - c->domain_pool->model = lc_domain_model; c->d_domain_pool->model = lc_d_domain_model; c->coeff->model = lc_coeff_model; @@ -492,15 +472,6 @@ subdivide (real_t max_costs, unsigned ba *range = rrange; - c->domain_pool->model_free (domain_model); - c->d_domain_pool->model_free (d_domain_model); - c->domain_pool->model_free (lc_domain_model); - c->d_domain_pool->model_free (lc_d_domain_model); - c->coeff->model_free (coeff_model); - c->d_coeff->model_free (d_coeff_model); - c->coeff->model_free (lc_coeff_model); - c->d_coeff->model_free (lc_d_coeff_model); - return subdivide_costs; } } diff -up netpbm-10.35.58/converter/other/fiasco/codec/wfalib.c.leaks netpbm-10.35.58/converter/other/fiasco/codec/wfalib.c --- netpbm-10.35.58/converter/other/fiasco/codec/wfalib.c.leaks 2009-01-19 09:23:57.000000000 +0100 +++ netpbm-10.35.58/converter/other/fiasco/codec/wfalib.c 2009-03-26 08:35:07.000000000 +0100 @@ -84,8 +84,8 @@ alloc_wfa (bool_t coding) wfa->wfainfo->wfa_name = NULL; wfa->wfainfo->basis_name = NULL; - wfa->wfainfo->title = strdup (""); - wfa->wfainfo->comment = strdup (""); + wfa->wfainfo->title = NULL; + wfa->wfainfo->comment = NULL; /* * Initialize structure diff -up netpbm-10.35.58/converter/other/fiasco/lib/bit-io.c.leaks netpbm-10.35.58/converter/other/fiasco/lib/bit-io.c --- netpbm-10.35.58/converter/other/fiasco/lib/bit-io.c.leaks 2009-01-19 09:23:57.000000000 +0100 +++ netpbm-10.35.58/converter/other/fiasco/lib/bit-io.c 2009-03-26 08:35:07.000000000 +0100 @@ -111,8 +111,6 @@ open_file (const char *filename, const c path = strtok (env_path, PATH_SEP); do { - if (ext_filename) - Free (ext_filename); ext_filename = Calloc (strlen (path) + strlen (filename) + 2, sizeof (char)); strcpy (ext_filename, path); @@ -120,6 +118,7 @@ open_file (const char *filename, const c strcat (ext_filename, "/"); strcat (ext_filename, filename); fp = fopen (ext_filename, mode == READ_ACCESS ? read_mode : write_mode); + Free (ext_filename); } while (fp == NULL && (path = strtok (NULL, PATH_SEP)) != NULL); diff -up netpbm-10.35.58/converter/other/fiasco/params.c.leaks netpbm-10.35.58/converter/other/fiasco/params.c --- netpbm-10.35.58/converter/other/fiasco/params.c.leaks 2009-01-19 09:23:57.000000000 +0100 +++ netpbm-10.35.58/converter/other/fiasco/params.c 2009-03-26 08:35:07.000000000 +0100 @@ -367,6 +367,7 @@ parseargs (param_t *usr_params, memcpy (usr_params, params, n1 * sizeof (param_t)); /* fill user struct */ free (sys_path); + free (params); return optind; }