diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2014-06-20 02:44:22 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2014-06-20 02:44:22 +0000 |
commit | d5af5d02947dc6f41f2d875e544e0535beec19bc (patch) | |
tree | 0a865d83554a2ce443b486f8f4e0a548e04e9c3a /Build/source/texk/dvipdfm-x | |
parent | ed16b725b2948c6051be586987131e168d3d950f (diff) |
Check kpse_in_name_ok and kpse_out_name_ok in extractbb
git-svn-id: svn://tug.org/texlive/trunk@34328 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipdfm-x')
-rw-r--r-- | Build/source/texk/dvipdfm-x/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/dvipdfm-x/xbb.c | 20 |
2 files changed, 19 insertions, 5 deletions
diff --git a/Build/source/texk/dvipdfm-x/ChangeLog b/Build/source/texk/dvipdfm-x/ChangeLog index f929e91e9e0..e351ffa3a87 100644 --- a/Build/source/texk/dvipdfm-x/ChangeLog +++ b/Build/source/texk/dvipdfm-x/ChangeLog @@ -1,3 +1,7 @@ +2014-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * xbb.c: Check kpse_in_name_ok and kpse_out_name_ok in extractbb. + 2014-06-16 Peter Breitenlohner <peb@mppmu.mpg.de> * Makefile.am: Drop the obsolete ACLOCAL_AMFLAGS. diff --git a/Build/source/texk/dvipdfm-x/xbb.c b/Build/source/texk/dvipdfm-x/xbb.c index 6dc1ada4d46..ec7a384398a 100644 --- a/Build/source/texk/dvipdfm-x/xbb.c +++ b/Build/source/texk/dvipdfm-x/xbb.c @@ -126,7 +126,7 @@ static void write_xbb(char *fname, if (xbb_to_file) { outname = make_xbb_filename(fname); - if ((fp = MFOPEN(outname, FOPEN_W_MODE)) == NULL) { + if (!kpse_out_name_ok(outname) || !(fp = MFOPEN(outname, FOPEN_W_MODE))) { ERROR("Unable to open output file: %s\n", outname); } } else { @@ -283,10 +283,20 @@ int extractbb (int argc, char *argv[]) for (; argc > 0; argc--, argv++) { FILE *infile = NULL; - char *kpse_file_name; - if (!(kpse_file_name = kpse_find_pict(argv[0])) || - (infile = MFOPEN(kpse_file_name, FOPEN_RBIN_MODE)) == NULL) { - WARN("Can't find file (%s)...skipping\n", argv[0]); + char *kpse_file_name = NULL; + + if (kpse_in_name_ok(argv[0])) { + infile = MFOPEN(argv[0], FOPEN_RBIN_MODE); + if (infile) { + kpse_file_name = xstrdup(argv[0]); + } else { + kpse_file_name = kpse_find_pict(argv[0]); + if (kpse_file_name && kpse_in_name_ok(kpse_file_name)) + infile = MFOPEN(kpse_file_name, FOPEN_RBIN_MODE); + } + } + if (infile == NULL) { + WARN("Can't find file (%s), or it is forbidden to read ...skipping\n", argv[0]); goto cont; } if (check_for_jpeg(infile)) { |