diff --git a/cmd/gvmap/make_map.c b/cmd/gvmap/make_map.c index 04a71aa4b3b84c53b064408db5ed3d2a1ca58de5..480cf9823436a71152867b1acd50b4b1c868f8b5 100644 --- a/cmd/gvmap/make_map.c +++ b/cmd/gvmap/make_map.c @@ -1891,11 +1891,14 @@ int make_map_internal(int exclude_random, int include_OK_points, xran = MALLOC(sizeof(real)*(*nrandom + 4)*dim2); nz = 0; if (INCLUDE_OK_POINTS){ - int *grouping2; nzok0 = nzok = *nrandom - 1;/* points that are within tolerance of real or artificial points */ - grouping2 = MALLOC(sizeof(int)*(n + *nrandom)); - memcpy(grouping2, grouping, sizeof(int)*n); - grouping = grouping2; + if (grouping == grouping0) { + int *grouping2 = MALLOC(sizeof(int)*(n + *nrandom)); + memcpy(grouping2, grouping, sizeof(int)*n); + grouping = grouping2; + } else { + grouping = REALLOC(grouping, sizeof(int)*(n + *nrandom)); + } } nn = n; diff --git a/lib/sparse/clustering.c b/lib/sparse/clustering.c index 86fe04e29a2ab0457937879b22e72c41c64b509a..ae4eeb33a66373383e0fa4d564f032f9a482b6d2 100644 --- a/lib/sparse/clustering.c +++ b/lib/sparse/clustering.c @@ -223,9 +223,15 @@ static Multilevel_Modularity_Clustering Multilevel_Modularity_Clustering_establi SparseMatrix_delete(R0); P = SparseMatrix_transpose(R); B = SparseMatrix_multiply(R, A); - if (!B) goto RETURN; + if (!B) { + FREE(deg_new); + goto RETURN; + } cA = SparseMatrix_multiply(B, P); - if (!cA) goto RETURN; + if (!cA) { + FREE(deg_new); + goto RETURN; + } SparseMatrix_delete(B); grid->P = P; grid->R = R; diff --git a/lib/sparse/mq.c b/lib/sparse/mq.c index 5fb0658d8778808a6bfddae20c9c0c62706f5736..bdf40575f49c038421cdf9f4a67d2375306a00d1 100644 --- a/lib/sparse/mq.c +++ b/lib/sparse/mq.c @@ -471,9 +471,19 @@ static Multilevel_MQ_Clustering Multilevel_MQ_Clustering_establish(Multilevel_MQ SparseMatrix_delete(R0); P = SparseMatrix_transpose(R); B = SparseMatrix_multiply(R, A); - if (!B) goto RETURN; + if (!B) { + FREE(deg_intra_new); + FREE(wgt_new); + FREE(dout_new); + goto RETURN; + } cA = SparseMatrix_multiply(B, P); - if (!cA) goto RETURN; + if (!cA) { + FREE(deg_intra_new); + FREE(wgt_new); + FREE(dout_new); + goto RETURN; + } SparseMatrix_delete(B); grid->P = P; grid->R = R; diff --git a/plugin/pango/gvgetfontlist_pango.c b/plugin/pango/gvgetfontlist_pango.c index c6afc42aacec3ce9e572b2283b58b3e5bcb07d96..6bb7bcdfe94e178d630f196a6befc2e9a6e73539 100644 --- a/plugin/pango/gvgetfontlist_pango.c +++ b/plugin/pango/gvgetfontlist_pango.c @@ -407,6 +407,7 @@ static availfont_t *gv_get_ps_fontlist(PangoFontMap * fontmap) } else { gv_afs->fontname = NULL; gv_afs->faces = 0; + free(family_name); } } g_free(families);