summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-06-20 02:44:22 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-06-20 02:44:22 +0000
commitd5af5d02947dc6f41f2d875e544e0535beec19bc (patch)
tree0a865d83554a2ce443b486f8f4e0a548e04e9c3a
parented16b725b2948c6051be586987131e168d3d950f (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
-rw-r--r--Build/source/texk/dvipdfm-x/ChangeLog4
-rw-r--r--Build/source/texk/dvipdfm-x/xbb.c20
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)) {