diff -up texlive-20180414/source/libs/luajit/LuaJIT-src/src/host/minilua.c.me texlive-20180414/source/libs/luajit/LuaJIT-src/src/host/minilua.c --- texlive-20180414/source/libs/luajit/LuaJIT-src/src/host/minilua.c.me 2018-08-14 10:08:29.573912544 +0100 +++ texlive-20180414/source/libs/luajit/LuaJIT-src/src/host/minilua.c 2018-09-24 09:18:24.640331882 +0100 @@ -4327,7 +4327,7 @@ if(lh->v.u.s.info==v->u.s.info){ conflict=1; lh->v.u.s.info=extra; } -if(lh->v.u.s.aux==v->u.s.info){ +if(lh->v.u.s.aux==v->u.s.aux){ conflict=1; lh->v.u.s.aux=extra; } diff -up texlive-20180414/source/libs/zziplib/zziplib-src/docs/make-doc.py.me texlive-20180414/source/libs/zziplib/zziplib-src/docs/make-doc.py --- texlive-20180414/source/libs/zziplib/zziplib-src/docs/make-doc.py.me 2018-08-14 10:34:45.827143276 +0100 +++ texlive-20180414/source/libs/zziplib/zziplib-src/docs/make-doc.py 2018-08-14 10:35:09.287578374 +0100 @@ -951,7 +951,7 @@ def docbook_refpages_perheader(page_list header[file].copyright = page.copyright if not header[file].authors and page.authors: header[file].authors = page.authors - if not header[file].authors and page.authors_list: + if not header[file].authors_list and page.authors_list: header[file].authors_list = page.authors_list if not header[file].description: found = m(commands.getoutput("cat "+o.package+".spec"), diff -up texlive-20180414/source/texk/dvipdfm-x/cid.c.me texlive-20180414/source/texk/dvipdfm-x/cid.c --- texlive-20180414/source/texk/dvipdfm-x/cid.c.me 2018-08-14 14:23:43.959754741 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/cid.c 2018-09-24 10:52:23.863792313 +0100 @@ -636,6 +636,7 @@ CIDFont_cache_find (const char *map_name CIDFONT_FLAG_TYPE1C) < 0 && CIDFont_base_open (font, map_name, cmap_csi, opt) < 0) { CIDFont_release(font); + RELEASE(font); release_opt(opt); return -1; } else { diff -up texlive-20180414/source/texk/dvipdfm-x/dvi.c.me texlive-20180414/source/texk/dvipdfm-x/dvi.c --- texlive-20180414/source/texk/dvipdfm-x/dvi.c.me 2018-08-14 14:31:53.138750339 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/dvi.c 2018-08-14 14:41:37.729500250 +0100 @@ -1001,8 +1001,11 @@ dvi_locate_native_font (const char *file char *enc_vec[256]; fp = DPXFOPEN(filename, DPX_RES_TYPE_T1FONT); - if (!fp) + if (!fp) { + if (path) + free(path); return -1; + } if (!is_pfb(fp)) ERROR("Failed to read Type 1 font \"%s\".", filename); diff -up texlive-20180414/source/texk/dvipdfm-x/fontmap.c.me texlive-20180414/source/texk/dvipdfm-x/fontmap.c --- texlive-20180414/source/texk/dvipdfm-x/fontmap.c.me 2018-09-24 12:45:22.068268381 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/fontmap.c 2018-09-24 12:45:13.508111517 +0100 @@ -849,8 +849,8 @@ pdf_insert_fontmap_record (const char *k subfont_ids = sfd_get_subfont_ids(sfd_name, &n); if (!subfont_ids) { RELEASE(fnt_name); - RELEASE(sfd_name); WARN("Could not open SFD file: %s", sfd_name); + RELEASE(sfd_name); return NULL; } if (verbose > 3) diff -up texlive-20180414/source/texk/dvipdfm-x/otl_conf.c.me texlive-20180414/source/texk/dvipdfm-x/otl_conf.c --- texlive-20180414/source/texk/dvipdfm-x/otl_conf.c.me 2018-09-24 12:55:36.589529234 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/otl_conf.c 2018-09-24 12:55:27.339359728 +0100 @@ -83,6 +83,7 @@ parse_uc_coverage (pdf_obj *gclass, cons pdf_add_array(coverage, pdf_link_obj(pdf_get_array(cvalues, i))); } + RELEASE(glyphclass); } break; default: diff -up texlive-20180414/source/texk/dvipdfm-x/otl_opt.c.me texlive-20180414/source/texk/dvipdfm-x/otl_opt.c --- texlive-20180414/source/texk/dvipdfm-x/otl_opt.c.me 2018-09-24 13:00:10.034538046 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/otl_opt.c 2018-09-24 13:13:31.949224947 +0100 @@ -134,6 +134,7 @@ parse_expr (const char **pp, const char expr = parse_expr(pp, endptr); if (!expr) { WARN("Syntax error: %s\n", *pp); + bt_release_tree(root); return NULL; } if (**pp != ')') { diff -up texlive-20180414/source/texk/dvipdfm-x/pdfdoc.c.me texlive-20180414/source/texk/dvipdfm-x/pdfdoc.c --- texlive-20180414/source/texk/dvipdfm-x/pdfdoc.c.me 2018-09-24 13:04:07.928895033 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/pdfdoc.c 2018-09-24 13:04:39.329470128 +0100 @@ -825,7 +825,7 @@ pdf_doc_close_page_tree (pdf_doc *p) pdf_page *page; page = doc_get_page_entry(p, page_no); - if (page->page_obj) { + if (page->page_ref) { WARN("Nonexistent page #%ld refered.", page_no); pdf_release_obj(page->page_ref); page->page_ref = NULL; diff -up texlive-20180414/source/texk/dvipdfm-x/pdfencrypt.c.me texlive-20180414/source/texk/dvipdfm-x/pdfencrypt.c --- texlive-20180414/source/texk/dvipdfm-x/pdfencrypt.c.me 2018-09-24 13:05:05.679952732 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/pdfencrypt.c 2018-09-24 13:10:25.655813021 +0100 @@ -616,7 +616,7 @@ pdf_enc_set_passwd (unsigned int bits, u } if (uplain) { if (preproc_password(uplain, upasswd, p->V) < 0) - WARN("Invalid UTF-8 string for passowrd."); + WARN("Invalid UTF-8 string for password."); } else { while (1) { strncpy(input, getpass("User password: "), MAX_PWD_LEN); diff -up texlive-20180414/source/texk/dvipdfm-x/pdfobj.c.me texlive-20180414/source/texk/dvipdfm-x/pdfobj.c --- texlive-20180414/source/texk/dvipdfm-x/pdfobj.c.me 2018-09-24 13:12:23.727975488 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/pdfobj.c 2018-09-24 13:12:43.988346552 +0100 @@ -1862,8 +1862,9 @@ apply_filter_TIFF2_1_2_4 (unsigned char } } } - if (outbits > 0) + if (outbits > 0) { raster[k] = (outbuf << (8 - outbits)); k++; + } } RELEASE(prev); } diff -up texlive-20180414/source/texk/dvipdfm-x/pkfont.c.me texlive-20180414/source/texk/dvipdfm-x/pkfont.c --- texlive-20180414/source/texk/dvipdfm-x/pkfont.c.me 2018-09-24 13:14:24.490187294 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/pkfont.c 2018-09-24 13:17:33.873656807 +0100 @@ -329,6 +329,7 @@ pk_decode_bitmap (pdf_obj *stream, uint3 } } + free(rowptr); return 0; } diff -up texlive-20180414/source/texk/dvipdfm-x/spc_dvips.c.me texlive-20180414/source/texk/dvipdfm-x/spc_dvips.c --- texlive-20180414/source/texk/dvipdfm-x/spc_dvips.c.me 2018-09-24 13:20:43.777135845 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/spc_dvips.c 2018-09-24 13:45:28.104313939 +0100 @@ -402,6 +402,7 @@ spc_handler_ps_tricks_bput (struct spc_e temporary_defs = dpx_create_temp_file(); if (!temporary_defs) { WARN("Failed to create temporary input file for PSTricks image conversion."); + free(formula); return -1; } @@ -455,7 +456,7 @@ spc_handler_ps_tricks_brotate (struct sp if (calculate_PS(cmd, strlen(cmd), &value, 0, 0, 0, 0, 0) != 0) return -1; RAngles[RAngleCount] = value; - + free(cmd); return spc_handler_xtx_do_transform (spe->x_user, spe->y_user, cos(value * M_PI / 180), sin(value * M_PI / 180), -sin(value * M_PI / 180), cos(value * M_PI / 180), @@ -491,12 +492,17 @@ spc_handler_ps_tricks_transform (struct concat[strlen(post)] = 0; concat = strstr(cmd, "{"); *concat = ' '; - if (calculate_PS(cmd, strlen(cmd), &d1, &d2, &d3, &d4, &d5, &d6) != 0) + if (calculate_PS(cmd, strlen(cmd), &d1, &d2, &d3, &d4, &d5, &d6) != 0) { + free(cmd); return -1; - if (spc_handler_xtx_gsave (0, 0) != 0) + } + if (spc_handler_xtx_gsave (0, 0) != 0) { + free(cmd); return -1; + } return spc_handler_xtx_do_transform (spe->x_user, spe->y_user, d1, d2, d3, d4, d5, d6); } + free(cmd); return spc_handler_xtx_grestore (0, 0); } @@ -570,7 +576,8 @@ spc_handler_ps_tricks_parse_path (struct fwrite(args->curptr, 1, clip - args->curptr, fp); fprintf(fp, " stroke "); skip_white(&clip, args->endptr); - parse_ident(&clip, args->endptr); + char *token = parse_ident(&clip, args->endptr); + free(token); fwrite(clip, 1, args->endptr - clip, fp); } #endif @@ -610,7 +617,9 @@ spc_handler_ps_tricks_parse_path (struct if (error) { WARN("Image format conversion for PSTricks failed."); RELEASE(gs_in); + RELEASE(gs_out); gs_in = 0; + gs_out = 0; return error; } @@ -706,6 +715,7 @@ spc_handler_ps_tricks_render (struct spc WARN("Image format conversion for PSTricks failed."); RELEASE(gs_in); gs_in = 0; + RELEASE(gs_out); return error; } @@ -1074,9 +1084,10 @@ int calculate_PS (char *string, int leng fscanf(coord, " %lf %lf ", res1, res2); else fscanf(coord, " [%lf %lf %lf %lf %lf %lf] ", res1, res2, res3, res4, res5, res6); - } else + } else { + RELEASE(cmd); return -1; - + } pclose(coord); RELEASE(cmd); dpx_delete_temp_file(formula, true); diff -up texlive-20180414/source/texk/dvipdfm-x/spc_util.c.me texlive-20180414/source/texk/dvipdfm-x/spc_util.c --- texlive-20180414/source/texk/dvipdfm-x/spc_util.c.me 2018-09-24 13:50:50.730216569 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/spc_util.c 2018-09-24 13:54:23.844113385 +0100 @@ -149,6 +149,7 @@ spc_read_color_color (struct spc_env *sp char *color_name = parse_c_ident(&ap->curptr, ap->endptr); if (!color_name) { spc_warn(spe, "No valid spot color name specified?"); + RELEASE(q); return -1; } skip_blank(&ap->curptr, ap->endptr); diff -up texlive-20180414/source/texk/dvipdfm-x/t1_load.c.me texlive-20180414/source/texk/dvipdfm-x/t1_load.c --- texlive-20180414/source/texk/dvipdfm-x/t1_load.c.me 2018-09-24 13:55:59.085854887 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/t1_load.c 2018-09-24 13:58:52.979034543 +0100 @@ -632,6 +632,9 @@ parse_subrs (cff_font *font, if (!PST_INTEGERTYPE(tok) || pst_getIV(tok) < 0 || pst_getIV(tok) > CS_STR_LEN_MAX) { RELEASE_TOK(tok); + if (offsets) RELEASE(offsets); + if (data) RELEASE(data); + if (lengths) RELEASE(lengths); return -1; } len = pst_getIV(tok); diff -up texlive-20180414/source/texk/dvipdfm-x/tt_cmap.c.me texlive-20180414/source/texk/dvipdfm-x/tt_cmap.c --- texlive-20180414/source/texk/dvipdfm-x/tt_cmap.c.me 2018-09-24 14:03:33.954172208 +0100 +++ texlive-20180414/source/texk/dvipdfm-x/tt_cmap.c 2018-09-24 14:07:07.738081269 +0100 @@ -1237,6 +1237,7 @@ otf_create_ToUnicode_stream (const char res_id = pdf_findresource("CMap", cmap_name); if (res_id >= 0) { RELEASE(cmap_name); + RELEASE(normalized_font_name); cmap_ref = pdf_get_resource_reference(res_id); return cmap_ref; } @@ -1254,6 +1255,7 @@ otf_create_ToUnicode_stream (const char sfont = dfont_open(fp, ttc_index); } else { RELEASE(cmap_name); + RELEASE(normalized_font_name); return NULL; } diff -up texlive-20180414/source/texk/dvipng/dvipng-src/font.c.me texlive-20180414/source/texk/dvipng/dvipng-src/font.c diff -up texlive-20180414/source/texk/dvipng/dvipng-src/misc.c.me texlive-20180414/source/texk/dvipng/dvipng-src/misc.c diff -up texlive-20180414/source/texk/dvipng/dvipng-src/sfd.c.me texlive-20180414/source/texk/dvipng/dvipng-src/sfd.c --- texlive-20180414/source/texk/dvipng/dvipng-src/sfd.c.me 2018-09-24 14:25:21.188076748 +0100 +++ texlive-20180414/source/texk/dvipng/dvipng-src/sfd.c 2018-09-24 14:28:14.741252282 +0100 @@ -139,8 +139,10 @@ struct psfontmap* FindSubFont(struct psf sfdname[postfix-sfdspec]='\0'; /* Check postfix */ postfix++; - if (strcmp(sfdwant+strlen(sfdwant)-strlen(postfix),postfix)!=0) + if (strcmp(sfdwant+strlen(sfdwant)-strlen(postfix),postfix)!=0) { + free(sfdname); return(NULL); + } /* Extract infix */ if ((infix=malloc(strlen(sfdwant)-strlen(postfix)+1))==NULL) Fatal("cannot allocate memory for subfont infix"); diff -up texlive-20180414/source/texk/dvipos/dvipos.c.me texlive-20180414/source/texk/dvipos/dvipos.c --- texlive-20180414/source/texk/dvipos/dvipos.c.me 2018-09-24 14:28:22.821400126 +0100 +++ texlive-20180414/source/texk/dvipos/dvipos.c 2018-09-24 14:33:37.367155421 +0100 @@ -246,7 +246,7 @@ int main (int argc, char *argv[]) if (infname) free(infname); if (outfname) free(outfname); - if (bbxfname) free(frmfname); + if (bbxfname) free(bbxfname); if (frmfname) free(frmfname); if (outfp) fclose(outfp); diff -up texlive-20180414/source/texk/dvipsk/dospecial.c.me texlive-20180414/source/texk/dvipsk/dospecial.c diff -up texlive-20180414/source/texk/dvipsk/emspecial.c.me texlive-20180414/source/texk/dvipsk/emspecial.c --- texlive-20180414/source/texk/dvipsk/emspecial.c.me 2018-09-24 15:01:40.267917277 +0100 +++ texlive-20180414/source/texk/dvipsk/emspecial.c 2018-09-24 15:20:25.108474385 +0100 @@ -811,8 +813,10 @@ MSP_2_ps(FILE *f, int wide, int high) linelen = (halfword *) mymalloc((integer)sizeof(halfword) * high); for (i = 0; i < high; i++) { linelen[i] = readhalfword(f); - if (feof(f)) + if (feof(f)) { + free(linelen); return; + } } line = (char *) mymalloc((integer)tobyte(wide)); @@ -1308,6 +1312,8 @@ bmpgraph(FILE *f, char *filename, float default: sprintf(errbuf,"em:graph: Unknown BMP compression\n"); specerror(errbuf); + if (line) free(line); + if (pshexa) free(pshexa); return; } --- texlive-20180414/source/texk/dvipsk/t1part.c.me 2018-09-24 15:47:04.767750977 +0100 +++ texlive-20180414/source/texk/dvipsk/t1part.c 2018-09-24 16:02:33.294747092 +0100 @@ -2458,6 +2458,7 @@ Afm(void) } } } + fclose(fafm); return -2; } @@ -2526,6 +2527,7 @@ FontPart(FILE *fout, unsigned char *font NameOfProgram(); (void) fprintf(stderr, "Error: %s is not a valid PFA file\n", fontfile); + fclose(fin); return -1; } @@ -2543,6 +2545,7 @@ FontPart(FILE *fout, unsigned char *font NameOfProgram(); (void) fprintf(stderr, "Error: %s is not a valid PFB file\n", fontfile); + fclose(fin); return -1; } break; @@ -2677,6 +2680,7 @@ LoadVector(int num, CHAR *TmpChar) } else { + fclose(fvect); fprintf(stderr,"\n Error: ending token 'def' not found in <%s> \n", psvectfile); return -2; diff -up texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/splineorder2.c.me texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/splineorder2.c --- texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/splineorder2.c.me 2018-09-25 08:19:26.742304540 +0100 +++ texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/splineorder2.c 2018-09-25 08:20:04.753003584 +0100 @@ -1289,9 +1289,9 @@ return; unit.x = from->nextcp.x-from->me.x; unit.y = from->nextcp.y-from->me.y; len = sqrt(unit.x*unit.x + unit.y*unit.y); - if ( len!=0 ) + if ( len!=0 ) { unit.x /= len; unit.y /= len; - + } if ( (fpt = from->pointtype)==pt_hvcurve ) fpt = pt_curve; if ( (tpt = to->pointtype)==pt_hvcurve ) tpt = pt_curve; if ( from->nextcpdef && to->prevcpdef ) switch ( fpt*3+tpt ) { diff -up texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/tottf.c.me texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/tottf.c --- texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/tottf.c.me 2018-09-25 09:12:58.071419844 +0100 +++ texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/tottf.c 2018-09-25 09:12:50.021271829 +0100 @@ -4273,9 +4273,10 @@ return( NULL ); (subheadcnt-i)*sizeof(struct subhead) + sizeof(uint16); sub = tmpfile2(); - if ( sub==NULL ) -return( NULL ); - + if ( sub==NULL ) { + free(glyphs); + return( NULL ); + } putshort(sub,2); /* 8/16 format */ putshort(sub,0); /* Subtable length, we'll come back and fix this */ putshort(sub,0); /* version/language, not meaningful in ms systems */ diff -up texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/ttfspecial.c.me texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/ttfspecial.c --- texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/ttfspecial.c.me 2018-09-25 09:50:27.032676224 +0100 +++ texlive-20180414/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/fontforge/ttfspecial.c 2018-09-25 09:47:22.249288133 +0100 @@ -1343,6 +1343,8 @@ static void pfed_read_glyph_layer(FILE * LogError(_("Whoops, Ran out of spiros\n")); } } + free(cur->layers); + free(cur); free(contours); } diff -up texlive-20180414/source/texk/kpathsea/cnf.c.me texlive-20180414/source/texk/kpathsea/cnf.c --- texlive-20180414/source/texk/kpathsea/cnf.c.me 2018-09-25 10:02:44.406129099 +0100 +++ texlive-20180414/source/texk/kpathsea/cnf.c 2018-09-25 10:50:20.648575054 +0100 @@ -132,6 +132,8 @@ do_line (kpathsea kpse, string line) while (len > 0 && ISSPACE (start[len - 1])) len--; if (len == 0) { + if (prog) free (prog); + if (var) free (var); return ("No cnf value"); } @@ -234,7 +236,6 @@ read_all_cnf (kpathsea kpse) xfclose (cnf_file, *cnf); free (*cnf); } - free (cnf_files); } else { string warn = getenv ("KPATHSEA_WARNING"); if (!(warn && STREQ (warn, "0"))) { @@ -243,6 +244,7 @@ read_all_cnf (kpathsea kpse) cnf_path); } } + free (cnf_files); } /* Read the cnf files on the first call. Return the first value in the diff -up texlive-20180414/source/texk/kpathsea/fontmap.c.me texlive-20180414/source/texk/kpathsea/fontmap.c --- texlive-20180414/source/texk/kpathsea/fontmap.c.me 2018-09-25 10:24:28.990061334 +0100 +++ texlive-20180414/source/texk/kpathsea/fontmap.c 2018-09-25 10:25:08.310783006 +0100 @@ -162,6 +162,7 @@ read_all_maps (kpathsea kpse) map_file_parse (kpse, *filenames); filenames++; } + free(filenames); } /* Look up KEY in texfonts.map's; if it's not found, remove any suffix diff -up texlive-20180414/source/texk/kpathsea/kpsewhich.c.me texlive-20180414/source/texk/kpathsea/kpsewhich.c --- texlive-20180414/source/texk/kpathsea/kpsewhich.c.me 2018-09-25 10:29:35.985696560 +0100 +++ texlive-20180414/source/texk/kpathsea/kpsewhich.c 2018-09-25 10:50:53.349178562 +0100 @@ -742,7 +742,8 @@ kpathsea_set_program_enabled (kpse, fmt, DISABLE_MKTEX (kpse_ocp_format); /* NULL for no fallback font. */ - kpathsea_init_prog (kpse, uppercasify (kpse->program_name), dpi, mode, NULL); + string PROG = uppercasify (kpse->program_name); + kpathsea_init_prog (kpse, PROG, dpi, mode, NULL); /* Have to do this after setting the program name. */ if (user_format_string) { @@ -752,6 +753,7 @@ kpathsea_set_program_enabled (kpse, fmt, user_format_string); } } + free(PROG); } diff -up texlive-20180414/source/texk/kpathsea/mktexlsr.me texlive-20180414/source/texk/kpathsea/mktexlsr --- texlive-20180414/source/texk/kpathsea/mktexlsr.me 2018-08-14 09:49:37.815932357 +0100 +++ texlive-20180414/source/texk/kpathsea/mktexlsr 2018-08-14 09:51:12.685644501 +0100 @@ -71,18 +71,18 @@ esac if tty -s; then verbose=true; else verbose=false; fi dry_run=false -trees= +trees=mktexlsrtrees # initialize treefile by either mktemp or some random name # code taken from pdfjam and adjusted { treefile=` - (umask 077 && mktemp "${TMPDIR-/tmp}/mktexlsrtrees.XXXXXXXXXX") 2>/dev/null + (umask 077 && mktemp "${TMPDIR-/tmp}/$trees.XXXXXXXXXX") 2>/dev/null ` && test -n "$treefile" && test -f "$treefile" } || { ## We'll use awk to make random number, for portability random=`awk 'END { srand(); printf ("%d\n", rand()*1000000); }' /dev/null` - treefile="${TMPDIR-/tmp}/mktexlsrtrees$$.$random" + treefile="${TMPDIR-/tmp}/$trees$$.$random" } || exit $? trap 'cd /; rm -f $treefile; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; diff -up texlive-20180414/source/texk/kpathsea/tex-file.c.me texlive-20180414/source/texk/kpathsea/tex-file.c --- texlive-20180414/source/texk/kpathsea/tex-file.c.me 2018-09-25 10:47:56.305911131 +0100 +++ texlive-20180414/source/texk/kpathsea/tex-file.c 2018-09-25 13:11:34.995055022 +0100 @@ -434,6 +434,7 @@ init_maketex (kpathsea kpse, kpse_file_f kpse_src_client_cnf); } + if (progval) free (progval); free (PROG); } diff -up texlive-20180414/source/texk/kpathsea/tex-glyph.c.me texlive-20180414/source/texk/kpathsea/tex-glyph.c --- texlive-20180414/source/texk/kpathsea/tex-glyph.c.me 2018-09-25 14:58:28.564047833 +0100 +++ texlive-20180414/source/texk/kpathsea/tex-glyph.c 2018-09-25 14:59:16.634928903 +0100 @@ -177,7 +177,7 @@ try_fontmap (kpathsea kpse, const_string *fontname_ptr = xstrdup (first_name); } } - + free (mapped_names); return ret; } diff -up texlive-20180414/source/texk/kpathsea/tex-make.c.me texlive-20180414/source/texk/kpathsea/tex-make.c --- texlive-20180414/source/texk/kpathsea/tex-make.c.me 2018-10-01 12:28:44.510074773 +0100 +++ texlive-20180414/source/texk/kpathsea/tex-make.c 2018-10-01 13:24:01.201630392 +0100 @@ -116,8 +116,9 @@ misstex (kpathsea kpse, kpse_file_format kpse->missfont = missfont_name ? fopen (missfont_name, FOPEN_A_MODE) : NULL; - if (!kpse->missfont && kpathsea_var_value (kpse, "TEXMFOUTPUT")) { - missfont_name = concat3 (kpathsea_var_value (kpse, "TEXMFOUTPUT"), + char *texmfoutput = kpathsea_var_value (kpse, "TEXMFOUTPUT"); + if (!kpse->missfont && texmfoutput) { + missfont_name = concat3 (texmfoutput, DIR_SEP_STRING, missfont_name); kpse->missfont = fopen (missfont_name, FOPEN_A_MODE); } @@ -125,6 +126,7 @@ misstex (kpathsea kpse, kpse_file_format if (kpse->missfont) fprintf (stderr, "kpathsea: Appending font creation commands to %s.\n", missfont_name); + free (texmfoutput); } /* Write the command if we have a log file. */ @@ -439,6 +441,7 @@ kpathsea_make_tex (kpathsea kpse, kpse_f if (base[0] == '-' /* || IS_DIR_SEP(base[0]) */) { fprintf(stderr, "kpathsea:make_tex: Invalid filename `%s', starts with '%c'\n", base, base[0]); + free (args); return NULL; } for (i = 0; base[i]; i++) { @@ -451,6 +454,7 @@ kpathsea_make_tex (kpathsea kpse, kpse_f { fprintf(stderr, "kpathsea:make_tex: Invalid filename `%s', contains '%c'\n", base, base[i]); + free (args); return NULL; } } diff -up texlive-20180414/source/texk/makeindexk/mkindex.me texlive-20180414/source/texk/makeindexk/mkindex --- texlive-20180414/source/texk/makeindexk/mkindex.me 2018-08-14 09:48:13.864392161 +0100 +++ texlive-20180414/source/texk/makeindexk/mkindex 2018-08-14 09:48:34.564771939 +0100 @@ -13,7 +13,7 @@ unset RUNNING_BSH progname=`basename $0` case $# in 0) - echo "usage: `basename $0` file[.idx] ..." 1>&2 + echo "usage: $progname file[.idx] ..." 1>&2 exit 1 ;; esac diff -up texlive-20180414/source/texk/web2c/lib/openclose.c.me texlive-20180414/source/texk/web2c/lib/openclose.c --- texlive-20180414/source/texk/web2c/lib/openclose.c.me 2018-10-02 15:06:29.670502929 +0100 +++ texlive-20180414/source/texk/web2c/lib/openclose.c 2018-10-02 15:09:52.234270066 +0100 @@ -303,6 +303,7 @@ open_output (FILE **f_ptr, const_string fname = concat3(texmfoutput, DIR_SEP_STRING, nameoffile+1); *f_ptr = fopen(fname, fopen_mode); } + free (texmfoutput); } /* If this succeeded, change nameoffile accordingly. */ if (*f_ptr) { diff -up texlive-20180414/source/texk/web2c/lib/texmfmp.c.me texlive-20180414/source/texk/web2c/lib/texmfmp.c --- texlive-20180414/source/texk/web2c/lib/texmfmp.c.me 2018-10-04 09:45:15.432099911 +0100 +++ texlive-20180414/source/texk/web2c/lib/texmfmp.c 2018-10-04 10:22:47.004046653 +0100 @@ -654,7 +654,9 @@ static boolean texmf_yesno(const_string var) { string value = kpse_var_value (var); - return value && (*value == 't' || *value == 'y' || *value == '1'); + boolean temp_value = (value && (*value == 't' || *value == 'y' || *value == '1')); + free (value); + return temp_value; } #ifdef pdfTeX @@ -899,6 +901,7 @@ maininit (int ac, string *av) } DUMP_VAR = concat (" ", with_ext); /* adjust array for Pascal */ DUMP_LENGTH_VAR = strlen (DUMP_VAR + 1); + free (with_ext); } else { /* For dump_name to be NULL is a bug. */ abort(); @@ -1379,11 +1382,9 @@ tcx_get_num (int upb, void readtcxfile (void) { - string orig_filename; if (!find_suffix (translate_filename)) { translate_filename = concat (translate_filename, ".tcx"); } - orig_filename = translate_filename; translate_filename = kpse_find_file (translate_filename, kpse_web2c_format, true); if (translate_filename) { @@ -1434,7 +1435,7 @@ readtcxfile (void) } xfclose(translate_file, translate_filename); } else { - WARNING1 ("Could not open char translation file `%s'", orig_filename); + WARNING1 ("Could not open char translation file `%s'", translate_filename); } } #endif /* !Aleph && !XeTeX */ @@ -2888,7 +2889,9 @@ boolean isnewsource (strnumber srcfilename, int lineno) { char *name = gettexstring(srcfilename); - return (compare_paths(name, last_source_name) != 0 || lineno != last_lineno); + boolean tmp_name = (compare_paths(name, last_source_name) != 0 || lineno != last_lineno); + free (name); + return tmp_name; } void @@ -2926,6 +2929,7 @@ makesrcspecial (strnumber srcfilename, i while (*s) strpool[poolptr++] = *s++; + free (filename); return (oldpoolptr); } @@ -3223,6 +3227,7 @@ void getfiledump(integer s, int offset, recorder_record_input(file_name); if (fseek(f, offset, SEEK_SET) != 0) { xfree(file_name); + fclose(f); return; } /* there is enough space in the string pool, the read diff -up texlive-20180414/source/texk/web2c/luatexdir/font/luafont.w.me texlive-20180414/source/texk/web2c/luatexdir/font/luafont.w --- texlive-20180414/source/texk/web2c/luatexdir/font/luafont.w.me 2018-10-04 10:46:48.310815583 +0100 +++ texlive-20180414/source/texk/web2c/luatexdir/font/luafont.w 2018-10-04 10:57:37.192864136 +0100 @@ -1102,8 +1102,8 @@ static void font_char_from_lua(lua_State { int k, r, t, lt, u, n; charinfo *co; - kerninfo *ckerns; - liginfo *cligs; + kerninfo *ckerns = NULL; + liginfo *cligs = NULL; scaled j; const char *s; int nl = 0; /* number of ligature table items */ @@ -1403,6 +1403,8 @@ static void font_char_from_lua(lua_State lua_pop(L, 1); /* ligatures table */ } } + if (ckerns) free (ckerns); + if (cligs) free (cligs); } @ The caller has to fix the state of the lua stack when there is an error! diff -up texlive-20180414/source/texk/web2c/luatexdir/font/tfmofm.w.me texlive-20180414/source/texk/web2c/luatexdir/font/tfmofm.w --- texlive-20180414/source/texk/web2c/luatexdir/font/tfmofm.w.me 2018-10-04 11:06:22.002603849 +0100 +++ texlive-20180414/source/texk/web2c/luatexdir/font/tfmofm.w 2018-10-04 11:06:46.713062328 +0100 @@ -1036,6 +1036,8 @@ int read_tfm_info(internal_font_number f } } + free (cligs); + free (ckerns); cligs = NULL; ckerns = NULL; diff -up texlive-20180414/source/texk/web2c/luatexdir/font/vfovf.w.me texlive-20180414/source/texk/web2c/luatexdir/font/vfovf.w --- texlive-20180414/source/texk/web2c/luatexdir/font/vfovf.w.me 2018-10-04 13:46:33.030731080 +0100 +++ texlive-20180414/source/texk/web2c/luatexdir/font/vfovf.w 2018-10-04 14:05:38.882001697 +0100 @@ -760,6 +760,8 @@ void do_vf(internal_font_number f) vf_read_u(4, utmp); cc = (int) utmp; if (!char_exists(f, cc)) { + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("invalid character code"); } vf_read(4, k); @@ -768,6 +770,8 @@ void do_vf(internal_font_number f) packet_length = cmd; vf_byte(cc); if (!char_exists(f, cc)) { + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("invalid character code"); } vf_read_u(3, utmp); @@ -820,9 +824,12 @@ void do_vf(internal_font_number f) n = 0; while ((n < vf_nf) && (vf_local_fnts[n] != (unsigned) k)) n++; - if (n == vf_nf) + if (n == vf_nf) { + if (vpackets) free (vpackets); + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("undefined local font"); - + } k = (int) vf_real_fnts[n]; append_fnt_set(k); cmd_length = 0; @@ -938,8 +945,12 @@ void do_vf(internal_font_number f) vf_read_u((cmd - xxx1 + 1), utmp); cmd_length = (int) utmp; packet_length -= (cmd - xxx1 + 1); - if (cmd_length <= 0) + if (cmd_length <= 0) { + if (vpackets) free (vpackets); + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("special of negative length"); + } packet_length -= (unsigned) cmd_length; append_packet(packet_special_code); @@ -982,6 +993,9 @@ void do_vf(internal_font_number f) break; case pop: if (stack_level == 0) { + if (vpackets) free (vpackets); + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("more POPs than PUSHs in character"); } else { decr(stack_level); @@ -993,6 +1007,9 @@ void do_vf(internal_font_number f) } break; default: + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); + if (vpackets) free (vpackets); bad_vf("improver DVI command"); } } @@ -1000,18 +1017,26 @@ void do_vf(internal_font_number f) /* signal end of packet */ append_packet(packet_end_code); - if (stack_level != 0) + if (stack_level != 0) { + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); + if (vpackets) free (vpackets); bad_vf("more PUSHs than POPs in character packet"); + } if (packet_length != 0) bad_vf("invalid packet length or DVI command in packet"); /* \.{Store the packet being built} */ set_charinfo_packets(co, vpackets); vf_byte(cmd); } - if (cmd != post) + if (cmd != post) { + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); bad_vf("POST command expected"); - + } xfree(vf_buffer); + if (vf_local_fnts) free (vf_local_fnts); + if (vf_real_fnts) free (vf_real_fnts); } @ @c diff -up texlive-20180414/source/texk/web2c/luatexdir/font/writecff.w.me texlive-20180414/source/texk/web2c/luatexdir/font/writecff.w --- texlive-20180414/source/texk/web2c/luatexdir/font/writecff.w.me 2018-10-04 14:46:50.747887890 +0100 +++ texlive-20180414/source/texk/web2c/luatexdir/font/writecff.w 2018-10-04 16:09:12.999654546 +0100 @@ -1105,6 +1105,7 @@ cff_font *read_cff(unsigned char *buf, l if (n > idx->count - 1) { normal_warning("cff","invalid fontset index number"); cff_close(cff); + cff_release_index(idx); return NULL; } cff->name = idx; @@ -1121,6 +1122,7 @@ cff_font *read_cff(unsigned char *buf, l if (n > idx->count - 1) { normal_warning("cff","top DICT not exist"); + cff_release_index(idx); cff_close(cff); return NULL; } @@ -1128,6 +1130,7 @@ cff_font *read_cff(unsigned char *buf, l idx->data + idx->offset[n + 1] - 1); if (!cff->topdict) { normal_warning("cff","parsing top DICT data failed"); + cff_release_index(idx); cff_close(cff); return NULL; } @@ -3037,6 +3040,7 @@ cffont->_string = NULL; pdf_out_block(pdf, stream, l); pdf_end_stream(pdf); pdf_end_obj(pdf); + free(stream); } } /* diff -up texlive-20180414/source/texk/web2c/luatexdir/font/writetype2.w.me texlive-20180414/source/texk/web2c/luatexdir/font/writetype2.w --- texlive-20180414/source/texk/web2c/luatexdir/font/writetype2.w.me 2018-10-04 16:13:09.614046152 +0100 +++ texlive-20180414/source/texk/web2c/luatexdir/font/writetype2.w 2018-10-04 16:13:43.084667255 +0100 @@ -406,6 +406,7 @@ boolean make_tt_subset(PDF pdf, fd_entry pdf_out_block(pdf, stream, l); pdf_end_stream(pdf); pdf_end_obj(pdf); + free(stream); } } }