Using Pipes with GS 9.50 and -dSAFER
Sheri Steeves <[email protected]> Tue, 29 Oct 2019 18:21:30 +0000
| Newsgroups | gmane.comp.printing.ghostscript.devel |
|---|---|
| Message-ID | <[email protected]> |
--_000_6ED7CC8A5DB1164BBF4E17873964BE64C4911261SBS2011peernetl_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Hello,
We have existing code using the command line arguments and gs_init_args wit=
h Ghostscript to convert a PDF or a PostScript into a Windows bitmap.
With the latest version, GS 9.50, this code fails and I'm pretty sure I'm h=
itting issues with the new file path restrictions.
The error messages are as follows:
GPL Ghostscript 9.50: **** Could not open the file 0000083C .
Error: /invalidfileaccess in --showpage-
I tried adding the appropriate paths hardcoded as a test (gsargv[i++] =3D "=
--permit-file-all=3DC:\\Test;C:\\Users\\User\\AppData\\Local\\Temp";) but s=
till got the same error messages.
This means that I either don't have all the paths that I need yet, or my ot=
her thought was that my issue stems from the fact that my output is set to =
a pipe handle. (sprintf(pBuf, "-sOutputFile=3D%%handle%%%p", m_hGSPipeWrite=
r );)
Does 9.50 still support writing to the OutputFile as a pipe? If it does, th=
en I know I just need to determine the correct file permission paths.
Here is my command line at this point.
gsargv[i++] =3D "PN" ; // actual value does not matter
sprintf(pBuf, "-I%s;%s", szLibDir, szFontDir );
gsargv[i++] =3D pBuf ;
sprintf(pBuf, "-sFONTPATH=3D\"%s\"", szFontDir );
gsargv[i++] =3D pBuf ;
cbNeeded =3D (lstrlen(_T("-sOutputFile=3D%%handle%%")) + 12 ) * sizeof (TCH=
AR ) ;
pBuf =3D (char *)alloca( cbNeeded ) ;
memset( pBuf, 0, cbNeeded ) ;
sprintf(pBuf, "-sOutputFile=3D%%handle%%%p", hPipeWriter );
gsargv[i++] =3D pBuf ;
gsargv[i++] =3D "-sDEVICE=3Dbmp16m" ;
gsargv[i++] =3D "-dTextAlphaBits=3D4" ;
gsargv[i++] =3D "-dGraphicsAlphaBits=3D4" ;
gsargv[i++] =3D "--permit-file-all=3DC:\\Test;C:\\Users\\sheri\\AppData\\Lo=
cal\\Temp " ;
// batch mode, don't pause between files
gsargv[i++] =3D "-dSAFER" ;
gsargv[i++] =3D "-dNOPAUSE" ;
gsargv[i++] =3D "-dBATCH" ;
sprintf(pBuf, "-r%dx%d", dwResolutionX, dwResolutionY ) ;
gsargv[i++] =3D pBuf ;
etc...
Thanks for any help you can shed on this issue.
Sheri
--_000_6ED7CC8A5DB1164BBF4E17873964BE64C4911261SBS2011peernetl_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hello, <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">We have existing code using the command line argumen=
ts and gs_init_args with Ghostscript to convert a PDF or a PostScript into =
a Windows bitmap.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">With the latest version, GS 9.50, this code fails an=
d I’m pretty sure I’m hitting issues with the new file path res=
trictions.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">The error messages are as follows: <o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-US" s=
tyle=3D"font-size:10.0pt;font-family:"Courier New"">GPL Ghostscri=
pt 9.50: **** Could not open the file 0000083C .<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Courier New""> Error: /inva=
lidfileaccess in --showpage—<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">I tried adding the appropriate paths hardcoded as a =
test (<span style=3D"font-size:9.5pt;font-family:Consolas;color:black;backg=
round:white;mso-highlight:white">gsargv[i++] =3D
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515;ba=
ckground:white;mso-highlight:white">"--permit-file-all=3DC:\\Test;C:\\=
Users\\User\\AppData\\Local\\Temp"</span><span style=3D"font-size:9.5p=
t;font-family:Consolas;color:black;background:white;mso-highlight:white">;<=
/span>)
but still got the same error messages. <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">This means that I either don’t have all the pa=
ths that I need yet, or my other thought was that my issue stems from the f=
act that my output is set to a pipe handle. (<span style=3D"font-size:9.5pt=
;font-family:Consolas">sprintf(pBuf,
<span style=3D"color:#A31515">"-sOutputFile=3D%%handle%%%p"</span=
>, m_hGSPipeWriter );</span>)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Does 9.50 still support writing to the OutputFile as=
a pipe? If it does, then I know I just need to determine the correct file =
permission paths.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Here is my command line at this point.<o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D
<span style=3D"color:#A31515">"PN"</span> ; &nbs=
p; <span style=3D"color:gre=
en">// actual value does not matter</span><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">sprintf(pBuf,
<span style=3D"color:#A31515">"-I%s;%s"</span>, szLibDir, szFontD=
ir );<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D pBuf ;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">sprintf(pBuf,
<span style=3D"color:#A31515">"-sFONTPATH=3D\"%s\""</sp=
an>, szFontDir );<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D pBuf ;<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">cbNeeded =3D (</span><span style=3D"font-size:9.5pt;font-family:Consol=
as;color:#6F008A;background:white;mso-highlight:white">lstrlen</span><span =
style=3D"font-size:9.5pt;font-family:Consolas;color:black;background:white;=
mso-highlight:white">(</span><span style=3D"font-size:9.5pt;font-family:Con=
solas;color:#6F008A;background:white;mso-highlight:white">_T</span><span st=
yle=3D"font-size:9.5pt;font-family:Consolas;color:black;background:white;ms=
o-highlight:white">(</span><span style=3D"font-size:9.5pt;font-family:Conso=
las;color:#A31515;background:white;mso-highlight:white">"-sOutputFile=
=3D%%handle%%"</span><span style=3D"font-size:9.5pt;font-family:Consol=
as;color:black;background:white;mso-highlight:white">))
+ 12 ) * </span><span style=3D"font-size:9.5pt;font-family:Consolas;co=
lor:blue;background:white;mso-highlight:white">sizeof</span><span style=3D"=
font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highl=
ight:white"> (</span><span style=3D"font-size:9.5pt;font-family:Consolas;co=
lor:#2B91AF;background:white;mso-highlight:white">TCHAR</span><span style=
=3D"font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-h=
ighlight:white">
) ; <o:p=
></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">pBuf =3D (</span><span style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue;background:white;mso-highlight:white">char</span><span style=3D"f=
ont-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highli=
ght:white">
*)</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#6F008A=
;background:white;mso-highlight:white">alloca</span><span style=3D"font-siz=
e:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:whi=
te">( cbNeeded ) ; &nb=
sp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">memset( pBuf, 0, cbNeeded ) ;  =
;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">sprintf(pBuf,
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515;ba=
ckground:white;mso-highlight:white">"-sOutputFile=3D%%handle%%%p"=
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:black;back=
ground:white;mso-highlight:white">, hPipeWriter
);</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:black">=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">gsargv[i++] =3D pBuf ;</span><span style=3D"font-size:9.5pt;fo=
nt-family:Consolas;color:black"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">gsargv[i++] =3D
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515;ba=
ckground:white;mso-highlight:white">"-sDEVICE=3Dbmp16m"</span><sp=
an style=3D"font-size:9.5pt;font-family:Consolas;color:black;background:whi=
te;mso-highlight:white"> ;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">gsargv[i++] =3D
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515;ba=
ckground:white;mso-highlight:white">"-dTextAlphaBits=3D4"</span><=
span style=3D"font-size:9.5pt;font-family:Consolas;color:black;background:w=
hite;mso-highlight:white"> ;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">gsargv[i++] =3D
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515;ba=
ckground:white;mso-highlight:white">"-dGraphicsAlphaBits=3D4"</sp=
an><span style=3D"font-size:9.5pt;font-family:Consolas;color:black;backgrou=
nd:white;mso-highlight:white"> ;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D
<span style=3D"color:#A31515">"--permit-file-all=3DC:\\Test;C:\\Users\=
\sheri\\AppData\\Local\\Temp "</span> ; &=
nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:green">// batch mode, don't pause betwe=
en files &=
nbsp;
</span><span style=3D"font-size:9.5pt;font-family:Consolas"><o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D
<span style=3D"color:#A31515">"-dSAFER"</span> ;  =
; <o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D
<span style=3D"color:#A31515">"-dNOPAUSE"</span> ; &nb=
sp; <o:p></o:p></span=
></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D
<span style=3D"color:#A31515">"-dBATCH"</span> ;<o:p></o:p></span=
></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:wh=
ite">
</span><span style=3D"font-size:9.5pt;font-family:Consolas"><o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">sprintf(pBuf,
<span style=3D"color:#A31515">"-r%dx%d"</span>, dwResolutionX, dw=
ResolutionY ) ; <o:p>
</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">gsargv[i++] =3D pBuf ;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">etc...<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas">Thanks for any help you can shed on this iss=
ue.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;color:black;mso-fare=
ast-language:EN-CA">Sheri</span><span style=3D"font-size:10.0pt;mso-fareast=
-language:EN-CA">
<br>
<br>
<span style=3D"color:black"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>
--_000_6ED7CC8A5DB1164BBF4E17873964BE64C4911261SBS2011peernetl_--