From f9fa4118886e8a67527ff2d10d813b660b6d1204 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Thu, 27 Sep 2007 02:48:50 +0000 Subject: Disallow all but RGB Display profiles for previewing (bzr r3808) --- src/color-profile.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/color-profile.cpp b/src/color-profile.cpp index 46bd1b803..dbd212bd6 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -380,12 +380,27 @@ cmsHPROFILE Inkscape::colorprofile_get_system_profile_handle() if ( which && uri && *uri ) { if ( lastURI != std::string(uri) ) { + lastURI.clear(); if ( theOne ) { cmsCloseProfile( theOne ); } theOne = cmsOpenProfileFromFile( uri, "r" ); if ( theOne ) { - lastURI = uri; + // a display profile must have the proper stuff + icColorSpaceSignature space = cmsGetColorSpace(theOne); + icProfileClassSignature profClass = cmsGetDeviceClass(theOne); + + if ( profClass != icSigDisplayClass ) { + g_warning("Not a display profile"); + cmsCloseProfile( theOne ); + theOne = 0; + } else if ( space != icSigRgbData ) { + g_warning("Not an RGB profile"); + cmsCloseProfile( theOne ); + theOne = 0; + } else { + lastURI = uri; + } } } } else if ( theOne ) { -- cgit v1.2.3