File ghostscript-9.00-icc.dif of Package ghostscript-library
--- base/gsicc_manage.c
+++ base/gsicc_manage.c 2010-10-01 13:22:19.011925867 +0000
@@ -673,7 +673,7 @@ gsicc_open_search(const char* pname, int
stream* str;
/* Check if we need to prepend the file name */
- if ( icc_manager != NULL) {
+ if ( icc_manager != NULL && *pname != '/' ) {
if ( icc_manager->profiledir != NULL ) {
/* If this fails, we will still try the file by itself and with
%rom% since someone may have left a space some of the spaces
--- psi/zusparam.c
+++ psi/zusparam.c 2010-10-01 13:30:27.871926079 +0000
@@ -596,7 +596,11 @@ set_default_gray_icc(i_ctx_t *i_ctx_p, g
static void
current_icc_directory(i_ctx_t *i_ctx_p, gs_param_string * pval)
{
+#ifdef ICCPROFILESDIR
+ static const char *const rfs = ICCPROFILESDIR;
+#else
static const char *const rfs = "%rom%iccprofiles/"; /* as good as any other */
+#endif
const gs_imager_state * pis = (gs_imager_state *) igs;
pval->data = (const byte *)( (pis->icc_manager->profiledir == NULL) ?
--- base/gxccman.c
+++ base/gxccman.c 2010-10-04 09:08:51.615926243 +0000
@@ -609,7 +609,8 @@ gx_alloc_char_bits(gs_font_dir * dir, gx
gs_make_mem_mono_device(pdev, pdev->memory, target);
rc_decrement_only(target, "gx_alloc_char_bits"); /* can't go to 0 */
/* Decrement the ICC profile also. Same device is getting reinitialized */
- rc_decrement(target->device_icc_profile,"gx_alloc_char_bits(icc profile)");
+ if (target)
+ rc_decrement(target->device_icc_profile,"gx_alloc_char_bits(icc profile)");
pdev->rc = rc;
pdev->retained = retained;
pdev->width = iwidth;