- 8.61.
This commit is contained in:
parent
ff17cad90e
commit
1b697da225
@ -20,3 +20,4 @@ espgs-8.15.3-source.tar.bz2
|
||||
espgs-8.15.4-source.tar.bz2
|
||||
ghostscript-8.60-r8117.tar.bz2
|
||||
ghostscript-8.60.tar.bz2
|
||||
ghostscript-8.61.tar.bz2
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
--- gs-orig/src/gdevijs.c 2007-04-24 13:00:22.000000000 +0100
|
||||
+++ gs-krgb/src/gdevijs.c 2007-04-27 14:44:05.000000000 +0100
|
||||
diff -up ghostscript-8.61/src/gdevijs.c.ijs-krgb ghostscript-8.61/src/gdevijs.c
|
||||
--- ghostscript-8.61/src/gdevijs.c.ijs-krgb 2007-09-25 14:31:24.000000000 +0100
|
||||
+++ ghostscript-8.61/src/gdevijs.c 2007-11-23 09:23:00.000000000 +0000
|
||||
@@ -23,15 +23,50 @@
|
||||
* which is a security risk, since any program can be run.
|
||||
* You should use -dSAFER which sets .LockSafetyParams to true
|
||||
@ -52,22 +52,22 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* This should go into gdevprn.h, or, better yet, gdevprn should
|
||||
acquire an API for changing resolution. */
|
||||
int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev,
|
||||
@@ -49,6 +84,14 @@
|
||||
private dev_proc_put_params(gsijs_put_params);
|
||||
private dev_proc_finish_copydevice(gsijs_finish_copydevice);
|
||||
@@ -49,6 +84,14 @@ static dev_proc_get_params(gsijs_get_par
|
||||
static dev_proc_put_params(gsijs_put_params);
|
||||
static dev_proc_finish_copydevice(gsijs_finish_copydevice);
|
||||
|
||||
+/* Following definitions are for krgb support. */
|
||||
+private dev_proc_create_buf_device(gsijs_create_buf_device);
|
||||
+private dev_proc_fill_rectangle(gsijs_fill_rectangle);
|
||||
+private dev_proc_copy_mono(gsijs_copy_mono);
|
||||
+private dev_proc_fill_mask(gsijs_fill_mask);
|
||||
+private dev_proc_fill_path(gsijs_fill_path);
|
||||
+private dev_proc_stroke_path(gsijs_stroke_path);
|
||||
+static dev_proc_create_buf_device(gsijs_create_buf_device);
|
||||
+static dev_proc_fill_rectangle(gsijs_fill_rectangle);
|
||||
+static dev_proc_copy_mono(gsijs_copy_mono);
|
||||
+static dev_proc_fill_mask(gsijs_fill_mask);
|
||||
+static dev_proc_fill_path(gsijs_fill_path);
|
||||
+static dev_proc_stroke_path(gsijs_stroke_path);
|
||||
+
|
||||
private const gx_device_procs gsijs_procs = {
|
||||
static const gx_device_procs gsijs_procs = {
|
||||
gsijs_open,
|
||||
NULL, /* get_initial_matrix */
|
||||
@@ -123,6 +166,15 @@
|
||||
@@ -123,6 +166,15 @@ struct gx_device_ijs_s {
|
||||
|
||||
IjsClientCtx *ctx;
|
||||
int ijs_version;
|
||||
@ -83,7 +83,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
};
|
||||
|
||||
#define DEFAULT_DPI 74 /* See gsijs_set_resolution() below. */
|
||||
@@ -150,7 +202,13 @@
|
||||
@@ -150,7 +202,13 @@ gx_device_ijs gs_ijs_device =
|
||||
FALSE, /* Tumble_set */
|
||||
|
||||
NULL, /* IjsClient *ctx */
|
||||
@ -98,7 +98,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
};
|
||||
|
||||
|
||||
@@ -166,12 +224,299 @@
|
||||
@@ -166,12 +224,299 @@ static int gsijs_read_string(gs_param_li
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
@ -117,7 +117,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ 0x01 /* 7 */
|
||||
+};
|
||||
+
|
||||
+private int gsijs_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
|
||||
+static int gsijs_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
|
||||
+ gx_color_index color)
|
||||
+{
|
||||
+ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
|
||||
@ -179,7 +179,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ return (*ijsdev->prn_procs.fill_rectangle)(dev, x, y, w, h, color);
|
||||
+}
|
||||
+
|
||||
+private int gsijs_copy_mono(gx_device * dev, const byte * data,
|
||||
+static int gsijs_copy_mono(gx_device * dev, const byte * data,
|
||||
+ int dx, int draster, gx_bitmap_id id,
|
||||
+ int x, int y, int w, int height, gx_color_index zero, gx_color_index one)
|
||||
+{
|
||||
@ -256,7 +256,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+
|
||||
+/* ---------------- High-level graphic procedures ---------------- */
|
||||
+
|
||||
+private int gsijs_fill_mask(gx_device * dev,
|
||||
+static int gsijs_fill_mask(gx_device * dev,
|
||||
+ const byte * data, int dx, int raster, gx_bitmap_id id,
|
||||
+ int x, int y, int w, int h,
|
||||
+ const gx_drawing_color * pdcolor, int depth,
|
||||
@ -278,7 +278,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ return code;
|
||||
+}
|
||||
+
|
||||
+private int gsijs_fill_path(gx_device * dev, const gs_imager_state * pis,
|
||||
+static int gsijs_fill_path(gx_device * dev, const gs_imager_state * pis,
|
||||
+ gx_path * ppath, const gx_fill_params * params,
|
||||
+ const gx_drawing_color * pdcolor,
|
||||
+ const gx_clip_path * pcpath)
|
||||
@ -295,7 +295,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+private int gsijs_stroke_path(gx_device * dev, const gs_imager_state * pis,
|
||||
+static int gsijs_stroke_path(gx_device * dev, const gs_imager_state * pis,
|
||||
+ gx_path * ppath, const gx_stroke_params * params,
|
||||
+ const gx_drawing_color * pdcolor,
|
||||
+ const gx_clip_path * pcpath)
|
||||
@ -314,7 +314,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+
|
||||
+/* ---------------- krgb banding playback procedures ---------------- */
|
||||
+
|
||||
+private int gsijs_get_bits(gx_device_printer * pdev, int y, byte * str, byte ** actual_data)
|
||||
+static int gsijs_get_bits(gx_device_printer * pdev, int y, byte * str, byte ** actual_data)
|
||||
+{
|
||||
+ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
|
||||
+ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
|
||||
@ -332,7 +332,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ return gdev_prn_get_bits(pdev, y, str, actual_data); /* get raster from regular band */
|
||||
+}
|
||||
+
|
||||
+private int gsijs_k_get_bits(gx_device_printer * pdev, int y, byte ** actual_data)
|
||||
+static int gsijs_k_get_bits(gx_device_printer * pdev, int y, byte ** actual_data)
|
||||
+{
|
||||
+ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
|
||||
+ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
|
||||
@ -346,7 +346,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+private int gsijs_create_buf_device(gx_device **pbdev, gx_device *target,
|
||||
+static int gsijs_create_buf_device(gx_device **pbdev, gx_device *target,
|
||||
+ const gx_render_plane_t *render_plane, gs_memory_t *mem, gx_band_complexity_t *band_complexity)
|
||||
+{
|
||||
+ gx_device_ijs *ijsdev = (gx_device_ijs *)target;
|
||||
@ -369,7 +369,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+}
|
||||
+
|
||||
+/* See if IJS server supports krgb. */
|
||||
+private int
|
||||
+static int
|
||||
+gsijs_set_krgb_mode(gx_device_ijs *ijsdev)
|
||||
+{
|
||||
+ char buf[256];
|
||||
@ -401,9 +401,9 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
+
|
||||
+/* ------ Private definitions ------ */
|
||||
|
||||
private int
|
||||
static int
|
||||
gsijs_parse_wxh (const char *val, int size, double *pw, double *ph)
|
||||
@@ -209,34 +554,6 @@
|
||||
@@ -209,34 +554,6 @@ gsijs_parse_wxh (const char *val, int si
|
||||
}
|
||||
|
||||
/**
|
||||
@ -412,7 +412,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
- * This version is specialized for hpijs 1.0 through 1.0.2, and
|
||||
- * accommodates a number of quirks.
|
||||
- **/
|
||||
-private int
|
||||
-static int
|
||||
-gsijs_set_generic_params_hpijs(gx_device_ijs *ijsdev)
|
||||
-{
|
||||
- char buf[256];
|
||||
@ -437,8 +437,8 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
-/**
|
||||
* gsijs_set_generic_params: Set generic IJS parameters.
|
||||
**/
|
||||
private int
|
||||
@@ -247,9 +564,6 @@
|
||||
static int
|
||||
@@ -247,9 +564,6 @@ gsijs_set_generic_params(gx_device_ijs *
|
||||
int i, j;
|
||||
char *value;
|
||||
|
||||
@ -448,7 +448,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* Split IjsParams into separate parameters and send to ijs server */
|
||||
value = NULL;
|
||||
for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
|
||||
@@ -290,68 +604,6 @@
|
||||
@@ -290,68 +604,6 @@ gsijs_set_generic_params(gx_device_ijs *
|
||||
}
|
||||
|
||||
/**
|
||||
@ -457,7 +457,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
- * This version is specialized for hpijs 1.0 through 1.0.2, and
|
||||
- * accommodates a number of quirks.
|
||||
- **/
|
||||
-private int
|
||||
-static int
|
||||
-gsijs_set_margin_params_hpijs(gx_device_ijs *ijsdev)
|
||||
-{
|
||||
- char buf[256];
|
||||
@ -516,8 +516,8 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
-/**
|
||||
* gsijs_set_margin_params: Do margin negotiation with IJS server.
|
||||
**/
|
||||
private int
|
||||
@@ -362,9 +614,6 @@
|
||||
static int
|
||||
@@ -362,9 +614,6 @@ gsijs_set_margin_params(gx_device_ijs *i
|
||||
int i, j;
|
||||
char *value;
|
||||
|
||||
@ -527,7 +527,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* Split IjsParams into separate parameters and send to ijs server */
|
||||
value = NULL;
|
||||
for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
|
||||
@@ -531,12 +780,18 @@
|
||||
@@ -531,12 +780,18 @@ gsijs_open(gx_device *dev)
|
||||
char buf[256];
|
||||
bool use_outputfd;
|
||||
int fd = -1;
|
||||
@ -546,7 +546,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* Decide whether to use OutputFile or OutputFD. Note: how to
|
||||
determine this is a tricky question, so we just allow the
|
||||
user to set it.
|
||||
@@ -551,6 +806,8 @@
|
||||
@@ -551,6 +806,8 @@ gsijs_open(gx_device *dev)
|
||||
if (code < 0)
|
||||
return code;
|
||||
|
||||
@ -555,7 +555,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
if (use_outputfd) {
|
||||
/* Note: dup() may not be portable to all interesting IJS
|
||||
platforms. In that case, this branch should be #ifdef'ed out.
|
||||
@@ -610,6 +867,9 @@
|
||||
@@ -610,6 +867,9 @@ gsijs_open(gx_device *dev)
|
||||
if (code >= 0)
|
||||
code = gsijs_set_margin_params(ijsdev);
|
||||
|
||||
@ -565,11 +565,11 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -690,21 +950,6 @@
|
||||
@@ -690,21 +950,6 @@ gsijs_raster_width(gx_device *pdev)
|
||||
return min(width, end);
|
||||
}
|
||||
|
||||
-private int ijs_all_white(unsigned char *data, int size)
|
||||
-static int ijs_all_white(unsigned char *data, int size)
|
||||
-{
|
||||
- int clean = 1;
|
||||
- int i;
|
||||
@ -587,7 +587,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* Print a page. Don't use normal printer gdev_prn_output_page
|
||||
* because it opens the output file.
|
||||
*/
|
||||
@@ -715,8 +960,10 @@
|
||||
@@ -715,8 +960,10 @@ gsijs_output_page(gx_device *dev, int nu
|
||||
gx_device_printer *pdev = (gx_device_printer *)dev;
|
||||
int raster = gdev_prn_raster(pdev);
|
||||
int ijs_width, ijs_height;
|
||||
@ -599,7 +599,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
unsigned char *data;
|
||||
char buf[256];
|
||||
double xres = pdev->HWResolution[0];
|
||||
@@ -732,13 +979,23 @@
|
||||
@@ -732,13 +979,23 @@ gsijs_output_page(gx_device *dev, int nu
|
||||
|
||||
/* Determine bitmap width and height */
|
||||
ijs_height = gdev_prn_print_scan_lines(dev);
|
||||
@ -627,7 +627,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
/* Required page parameters */
|
||||
sprintf(buf, "%d", n_chan);
|
||||
gsijs_client_set_param(ijsdev, "NumChan", buf);
|
||||
@@ -747,44 +1004,71 @@
|
||||
@@ -747,44 +1004,71 @@ gsijs_output_page(gx_device *dev, int nu
|
||||
|
||||
/* This needs to become more sophisticated for DeviceN. */
|
||||
strcpy(buf, (n_chan == 4) ? "DeviceCMYK" :
|
||||
@ -719,11 +719,11 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
|
||||
gs_free_object(pdev->memory, data, "gsijs_output_page");
|
||||
|
||||
endcode = (pdev->buffer_space && !pdev->is_async_renderer ?
|
||||
@@ -1090,7 +1374,6 @@
|
||||
@@ -1090,7 +1374,6 @@ gsijs_client_set_param(gx_device_ijs *ij
|
||||
dprintf2("ijs: Can't set parameter %s=%s\n", key, value);
|
||||
return code;
|
||||
}
|
||||
-
|
||||
|
||||
private int
|
||||
static int
|
||||
gsijs_set_color_format(gx_device_ijs *ijsdev)
|
||||
|
@ -1,48 +0,0 @@
|
||||
diff -up ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c
|
||||
--- ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c.CVE-2007-2721 2006-02-08 06:21:28.000000000 +0000
|
||||
+++ ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c 2007-10-23 14:15:01.000000000 +0100
|
||||
@@ -247,7 +247,7 @@ jp2_box_t *jp2_box_get(jas_stream_t *in)
|
||||
box = 0;
|
||||
tmpstream = 0;
|
||||
|
||||
- if (!(box = jas_malloc(sizeof(jp2_box_t)))) {
|
||||
+ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) {
|
||||
goto error;
|
||||
}
|
||||
box->ops = &jp2_boxinfo_unk.ops;
|
||||
diff -up ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c
|
||||
--- ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c.CVE-2007-2721 2006-02-08 06:21:28.000000000 +0000
|
||||
+++ ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c 2007-10-23 14:15:01.000000000 +0100
|
||||
@@ -991,7 +991,10 @@ static int jpc_qcx_getcompparms(jpc_qcxc
|
||||
compparms->numstepsizes = (len - n) / 2;
|
||||
break;
|
||||
}
|
||||
-if (compparms->numstepsizes > 0) {
|
||||
+if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) {
|
||||
+ jpc_qcx_destroycompparms(compparms);
|
||||
+ return -1;
|
||||
+ } else if (compparms->numstepsizes > 0) {
|
||||
compparms->stepsizes = jas_malloc(compparms->numstepsizes *
|
||||
sizeof(uint_fast32_t));
|
||||
assert(compparms->stepsizes);
|
||||
diff -up ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c
|
||||
--- ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c.CVE-2007-2721 2006-12-06 22:25:01.000000000 +0000
|
||||
+++ ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c 2007-10-23 14:15:01.000000000 +0100
|
||||
@@ -1219,7 +1219,7 @@ static int jpc_dec_process_siz(jpc_dec_t
|
||||
dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth);
|
||||
dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight);
|
||||
dec->numtiles = dec->numhtiles * dec->numvtiles;
|
||||
- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) {
|
||||
+ if (!(dec->tiles = jas_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1243,7 +1243,7 @@ static int jpc_dec_process_siz(jpc_dec_t
|
||||
tile->pkthdrstreampos = 0;
|
||||
tile->pptstab = 0;
|
||||
tile->cp = 0;
|
||||
- if (!(tile->tcomps = jas_malloc(dec->numcomps *
|
||||
+ if (!(tile->tcomps = jas_calloc(dec->numcomps,
|
||||
sizeof(jpc_dec_tcomp_t)))) {
|
||||
return -1;
|
||||
}
|
@ -1,166 +0,0 @@
|
||||
From: alexcher <alexcher@a1074d23-0009-0410-80fe-cf8c14f379e6>
|
||||
Date: Sat, 8 Sep 2007 22:31:20 +0000 (+0000)
|
||||
Subject: Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional
|
||||
X-Git-Url: http://git.infradead.org/?p=ghostscript.git;a=commitdiff_plain;h=0513d1b9542d37e7134d36e49222b12ef469b722
|
||||
|
||||
Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional
|
||||
interface to large file support. Check for mkstemp64() availability specially.
|
||||
|
||||
|
||||
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk/gs@8232 a1074d23-0009-0410-80fe-cf8c14f379e6
|
||||
---
|
||||
|
||||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
index c1e3c3b..5590f9a 100644
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -120,8 +120,11 @@ GENOPT=
|
||||
#
|
||||
# -DHAVE_FILE64
|
||||
# use marked versions of the stdio FILE calls, fopen64() et al.
|
||||
+#
|
||||
+# -DHAVE_MKSTEMP64
|
||||
+# use non-standard function mkstemp64()
|
||||
|
||||
-CAPOPT= @HAVE_MKSTEMP@ @HAVE_HYPOT@ @HAVE_FILE64@ @HAVE_FONTCONFIG@
|
||||
+CAPOPT= @HAVE_MKSTEMP@ @HAVE_HYPOT@ @HAVE_FILE64@ @HAVE_MKSTEMP64@ @HAVE_FONTCONFIG@
|
||||
|
||||
# Define the name of the executable file.
|
||||
|
||||
diff --git a/src/configure.ac b/src/configure.ac
|
||||
index 10658c5..ffde250 100644
|
||||
--- a/src/configure.ac
|
||||
+++ b/src/configure.ac
|
||||
@@ -924,6 +924,9 @@ AC_SUBST(HAVE_HYPOT)
|
||||
AC_CHECK_FUNCS([fopen64], [HAVE_FILE64=-DHAVE_FILE64])
|
||||
AC_SUBST(HAVE_FILE64)
|
||||
|
||||
+AC_CHECK_FUNCS([mkstemp64], [HAVE_MKSTEMP64=-DHAVE_MKSTEMP64])
|
||||
+AC_SUBST(HAVE_MKSTEMP64)
|
||||
+
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
|
||||
dnl NB: We don't actually provide autoconf-switched fallbacks for any
|
||||
diff --git a/src/gp_unifs.c b/src/gp_unifs.c
|
||||
index 6b6a85c..ac555b5 100644
|
||||
--- a/src/gp_unifs.c
|
||||
+++ b/src/gp_unifs.c
|
||||
@@ -88,18 +88,22 @@ gp_open_scratch_file_generic(const char *prefix, char fname[gp_file_name_sizeof]
|
||||
|
||||
/* save the old filename template in case mkstemp fails */
|
||||
memcpy(ofname, fname, gp_file_name_sizeof);
|
||||
-#if defined(HAVE_FILE64) && !defined(_LARGEFILE64_SOURCE)
|
||||
- if (b64)
|
||||
- file = mkstemp64(fname);
|
||||
- else
|
||||
+#ifdef HAVE_MKSTEMP64
|
||||
+ file = (b64 ? mkstemp64 : mkstemp)(fname);
|
||||
+#else
|
||||
+ file = mkstemp(fname);
|
||||
#endif
|
||||
- file = mkstemp(fname);
|
||||
-
|
||||
- /* Fixme : what to do with b64 and 32-bit mkstemp? Unimplemented. */
|
||||
if (file < -1) {
|
||||
eprintf1("**** Could not open temporary file %s\n", ofname);
|
||||
return NULL;
|
||||
}
|
||||
+#if defined(O_LARGEFILE) && defined(__hpux)
|
||||
+ if (b64)
|
||||
+ fcntl(file, F_SETFD, fcntl(file, F_GETFD) | O_LARGEFILE);
|
||||
+#else
|
||||
+ /* Fixme : what to do with b64 and 32-bit mkstemp? Unimplemented. */
|
||||
+#endif
|
||||
+
|
||||
fp = fdopen(file, mode);
|
||||
if (fp == NULL)
|
||||
close(file);
|
||||
@@ -479,10 +483,10 @@ gp_enumerate_files_close(file_enum * pfen)
|
||||
|
||||
FILE *gp_fopen_64(const char *filename, const char *mode)
|
||||
{
|
||||
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
|
||||
- return fopen(filename, mode);
|
||||
-#else
|
||||
+#if defined(HAVE_FILE64)
|
||||
return fopen64(filename, mode);
|
||||
+#else
|
||||
+ return fopen(filename, mode);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -497,22 +501,22 @@ FILE *gp_open_scratch_file_64(const char *prefix,
|
||||
|
||||
int64_t gp_ftell_64(FILE *strm)
|
||||
{
|
||||
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
|
||||
- return ftello(strm);
|
||||
-#else
|
||||
+#if defined(HAVE_FILE64)
|
||||
return ftello64(strm);
|
||||
+#else
|
||||
+ return ftello(strm);
|
||||
#endif
|
||||
}
|
||||
|
||||
int gp_fseek_64(FILE *strm, int64_t offset, int origin)
|
||||
{
|
||||
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
|
||||
+#if defined(HAVE_FILE64)
|
||||
+ return fseeko64(strm, offset, origin);
|
||||
+#else
|
||||
off_t offset1 = (off_t)offset;
|
||||
|
||||
if (offset != offset1)
|
||||
return -1;
|
||||
return fseeko(strm, offset1, origin);
|
||||
-#else
|
||||
- return fseeko64(strm, offset, origin);
|
||||
#endif
|
||||
}
|
||||
diff --git a/src/stdpre.h b/src/stdpre.h
|
||||
index acb61c1..c17cdbf 100644
|
||||
--- a/src/stdpre.h
|
||||
+++ b/src/stdpre.h
|
||||
@@ -17,6 +17,9 @@
|
||||
#ifndef stdpre_INCLUDED
|
||||
# define stdpre_INCLUDED
|
||||
|
||||
+/* Ghostscript uses transitional LFS functions. */
|
||||
+#define _LARGEFILE64_SOURCE 1
|
||||
+
|
||||
/*
|
||||
* Here we deal with the vagaries of various C compilers. We assume that:
|
||||
* ANSI-standard Unix compilers define __STDC__.
|
||||
From: alexcher <alexcher@a1074d23-0009-0410-80fe-cf8c14f379e6>
|
||||
Date: Wed, 5 Sep 2007 19:21:05 +0000 (+0000)
|
||||
Subject: Replace non-standard function call fdopen64() with fdopen(). The former
|
||||
X-Git-Url: http://git.infradead.org/?p=ghostscript.git;a=commitdiff_plain;h=dc01761c07d210974d829c35c33a8886c33b0488
|
||||
|
||||
Replace non-standard function call fdopen64() with fdopen(). The former
|
||||
is not available on most platforms and not needed anyway because O_LARGEFILE
|
||||
flag is set earlier in the code. Bug 689175.
|
||||
|
||||
DIFFERENCES:
|
||||
None
|
||||
|
||||
|
||||
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk/gs@8229 a1074d23-0009-0410-80fe-cf8c14f379e6
|
||||
---
|
||||
|
||||
diff --git a/src/gpmisc.c b/src/gpmisc.c
|
||||
index f963d82..303fac2 100644
|
||||
--- a/src/gpmisc.c
|
||||
+++ b/src/gpmisc.c
|
||||
@@ -93,11 +93,7 @@ gp_fopentemp_generic(const char *fname, const char *mode, bool b64)
|
||||
* fdopen as (char *), rather than following the POSIX.1 standard,
|
||||
* which defines it as (const char *). Patch this here.
|
||||
*/
|
||||
-#if defined (O_LARGEFILE)
|
||||
- file = (b64 ? fdopen64 : fdopen)(fildes, (char *)mode); /* still really const */
|
||||
-#else
|
||||
file = fdopen(fildes, (char *)mode); /* still really const */
|
||||
-#endif
|
||||
if (file == 0)
|
||||
close(fildes);
|
||||
return file;
|
@ -1,6 +1,8 @@
|
||||
--- ghostscript-8.60-r8112/ijs/ijs-config.in.multilib 2002-01-31 19:09:46.000000000 +0000
|
||||
+++ ghostscript-8.60-r8112/ijs/ijs-config.in 2007-07-10 17:46:44.000000000 +0100
|
||||
@@ -43,8 +43,7 @@
|
||||
diff -up ghostscript-8.61/ijs/Makefile.am.multilib ghostscript-8.61/ijs/Makefile.am
|
||||
diff -up ghostscript-8.61/ijs/ijs-config.in.multilib ghostscript-8.61/ijs/ijs-config.in
|
||||
--- ghostscript-8.61/ijs/ijs-config.in.multilib 2002-01-31 19:09:46.000000000 +0000
|
||||
+++ ghostscript-8.61/ijs/ijs-config.in 2007-11-23 09:19:18.000000000 +0000
|
||||
@@ -43,8 +43,7 @@ while test $# -gt 0; do
|
||||
echo $includes
|
||||
;;
|
||||
--libs)
|
||||
@ -10,14 +12,3 @@
|
||||
;;
|
||||
*)
|
||||
echo "${usage}" 1>&2
|
||||
--- ghostscript-8.60-r8112/ijs/Makefile.am.multilib 2007-07-10 18:00:36.000000000 +0100
|
||||
+++ ghostscript-8.60-r8112/ijs/Makefile.am 2007-07-10 18:00:39.000000000 +0100
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
pkgincludedir=$(includedir)/ijs
|
||||
m4datadir = $(datadir)/aclocal
|
||||
-pkgconfigdatadir = $(prefix)/lib/pkgconfig
|
||||
+pkgconfigdatadir = $(libdir)/pkgconfig
|
||||
|
||||
lib_LTLIBRARIES = libijs.la
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
%define gs_ver 8.60
|
||||
%define gs_dot_ver 8.60
|
||||
%define gs_ver 8.61
|
||||
%define gs_dot_ver 8.61
|
||||
%{expand: %%define build_with_freetype %{?_with_freetype:1}%{!?_with_freetype:0}}
|
||||
Summary: A PostScript(TM) interpreter and renderer.
|
||||
Name: ghostscript
|
||||
Version: %{gs_ver}
|
||||
|
||||
Release: 5%{?dist}
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: GPLv2
|
||||
URL: http://www.ghostscript.com/
|
||||
@ -20,8 +20,6 @@ Patch2: ghostscript-scripts.patch
|
||||
Patch3: ghostscript-noopt.patch
|
||||
Patch4: ghostscript-fPIC.patch
|
||||
Patch5: http://www.openprinting.org/download/printing/esp-gpl-ghostscript-merge/ghostscript-8.57-ijs-krgb.patch
|
||||
Patch6: ghostscript-mkstemp64.patch
|
||||
Patch7: ghostscript-CVE-2007-2721.patch
|
||||
|
||||
Requires: urw-fonts >= 1.1, ghostscript-fonts
|
||||
BuildRequires: libjpeg-devel, libXt-devel
|
||||
@ -90,12 +88,6 @@ A GTK-enabled version of Ghostscript, called 'gsx'.
|
||||
# IJS KRGB patch.
|
||||
%patch5 -p1 -b .ijs-krgb
|
||||
|
||||
# From upstream.
|
||||
%patch6 -p1 -b .mkstemp64
|
||||
|
||||
# Applied patch from upstream to fix CVE-2007-2721 (bug #346511).
|
||||
%patch7 -p1 -b .CVE-2007-2721
|
||||
|
||||
# Convert manual pages to UTF-8
|
||||
from8859_1() {
|
||||
iconv -f iso-8859-1 -t utf-8 < "$1" > "${1}_"
|
||||
@ -156,14 +148,15 @@ make install soinstall \
|
||||
prefix=$RPM_BUILD_ROOT%{_prefix} \
|
||||
mandir=$RPM_BUILD_ROOT%{_mandir} \
|
||||
datadir=$RPM_BUILD_ROOT%{_datadir} \
|
||||
gsincludedir=$RPM_BUILD_ROOT%{_includedir}/ghostscript \
|
||||
bindir=$RPM_BUILD_ROOT%{_bindir} \
|
||||
libdir=$RPM_BUILD_ROOT%{_libdir} \
|
||||
docdir=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{gs_dot_ver} \
|
||||
gsdir=$RPM_BUILD_ROOT%{_datadir}/%{name} \
|
||||
gsdatadir=$RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver} \
|
||||
gssharedir=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{gs_dot_ver} \
|
||||
CUPSSERVER=$RPM_BUILD_ROOT`cups-config --serverbin` \
|
||||
CUPSCONFIG=$RPM_BUILD_ROOT`cups-config --serverroot` \
|
||||
CUPSSERVERROOT=$RPM_BUILD_ROOT`cups-config --serverroot` \
|
||||
CUPSSERVERBIN=$RPM_BUILD_ROOT`cups-config --serverbin` \
|
||||
CUPSDATA=$RPM_BUILD_ROOT`cups-config --datadir`
|
||||
|
||||
mv -f $RPM_BUILD_ROOT%{_bindir}/gsc $RPM_BUILD_ROOT%{_bindir}/gs
|
||||
@ -274,6 +267,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/libgs.so
|
||||
|
||||
%changelog
|
||||
* Fri Nov 23 2007 Tim Waugh <twaugh@redhat.com> 8.61-1
|
||||
- 8.61.
|
||||
|
||||
* Tue Oct 23 2007 Tim Waugh <twaugh@redhat.com> 8.60-5
|
||||
- Applied patch from upstream to fix CVE-2007-2721 (bug #346511).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user