44 lines
1.6 KiB
Diff
44 lines
1.6 KiB
Diff
From 5d2da96e81c7455338302c71a291088a8396245a Mon Sep 17 00:00:00 2001
|
|
From: Chris Liddell <chris.liddell@artifex.com>
|
|
Date: Mon, 16 Oct 2023 16:49:40 +0100
|
|
Subject: [PATCH] Bug 707264: Fix tiffsep(1) requirement for seekable output
|
|
files
|
|
|
|
In the device initialization redesign, tiffsep and tiffsep1 lost the requirement
|
|
for the output files to be seekable.
|
|
|
|
Fixing that highlighted a problem with the error handling in
|
|
gdev_prn_open_printer_seekable() where closing the erroring file would leave a
|
|
dangling pointer, and lead to a crash.
|
|
---
|
|
base/gdevprn.c | 1 +
|
|
devices/gdevtsep.c | 1 +
|
|
2 files changed, 2 insertions(+)
|
|
|
|
diff --git a/base/gdevprn.c b/base/gdevprn.c
|
|
index 0491a3c6c..033632387 100644
|
|
--- a/base/gdevprn.c
|
|
+++ b/base/gdevprn.c
|
|
@@ -1271,6 +1271,7 @@ gdev_prn_open_printer_seekable(gx_device *pdev, bool binary_mode,
|
|
&& !IS_LIBCTX_STDERR(pdev->memory, gp_get_file(ppdev->file))) {
|
|
|
|
code = gx_device_close_output_file(pdev, ppdev->fname, ppdev->file);
|
|
+ ppdev->file = NULL;
|
|
if (code < 0)
|
|
return code;
|
|
}
|
|
diff --git a/devices/gdevtsep.c b/devices/gdevtsep.c
|
|
index 7fd3c5518..f7a1b174b 100644
|
|
--- a/devices/gdevtsep.c
|
|
+++ b/devices/gdevtsep.c
|
|
@@ -737,6 +737,7 @@ tiffsep_initialize_device_procs(gx_device *dev)
|
|
{
|
|
gdev_prn_initialize_device_procs(dev);
|
|
|
|
+ set_dev_proc(dev, output_page, gdev_prn_output_page_seekable);
|
|
set_dev_proc(dev, open_device, tiffsep_prn_open);
|
|
set_dev_proc(dev, close_device, tiffsep_prn_close);
|
|
set_dev_proc(dev, map_color_rgb, tiffsep_decode_color);
|
|
--
|
|
2.34.1
|