Re: [Bug 687317] New: EncryptionR=2 doesn't workwithPermissions=-44

"Igor V. Melichev" <[email protected]>
Newsgroups gmane.comp.printing.ghostscript.patches
Message-ID <[email protected]>
The patch looks fine. Please commit.

Igor.

----- Original Message ----- 
From: "Russell Lang" <[email protected]>
To: <[email protected]>
Cc: "Igor V. Melichev" <[email protected]>
Sent: Wednesday, February 25, 2004 2:15 PM
Subject: Re: [gs-code-review] [Bug 687317] New: EncryptionR=2 doesn't
workwithPermissions=-44


> Igor,
>
> Updated patch attached.
>
> To be applied to HEAD and GS_8_1X.
>
> Log message:
> Fix pdfwrite allowable Permissions for EncryptionR=2.
> Fix default Permissions.
>
> DETAILS:
> The code was assuming that the extra permissions should be 0's,
> when in fact they should be 1's.  The fixed code is a bit more
> conservative and requires that all reserved bits match the PDF
> specification. Set the default permissions to -4 which allows
> everything.
>
>
>
> On 25 Feb 2004 at 11:18, Igor V. Melichev wrote:
>
> > I agree that the check in incorrect.
> > However the patch is incomplete. It must fix the default value in
> > gdevpdf.c ln 206 .
> >
> > Probably GS_8_1X to be patched as well.
> >
> > Igor.
> >
> > ----- Original Message ----- 
> > From: "Russell Lang" <[email protected]>
> > To: <[email protected]>
> > Sent: Wednesday, February 25, 2004 10:43 AM
> > Subject: [gs-code-review] [Bug 687317] New: EncryptionR=2 doesn't work
> > withPermissions=-44
> >
> >
> > > Log message:
> > > Fix pdfwrite allowable Permissions for EncryptionR=2.
> > >
> > > DETAILS:
> > > The code was assuming that the extra permissions should be 0's,
> > > when in fact they should be 1's.  The fixed code is a bit more
> > > conservative and requires that all reserved bits match the PDF
> > > specification.
> > >
> > > diff -u -r1.89 gdevpdf.c
> > > --- a/gdevpdf.c 13 Feb 2004 08:08:35 -0000      1.89
> > > +++ b/gdevpdf.c 25 Feb 2004 03:33:54 -0000
> > > @@ -545,7 +545,8 @@
> > >         eprintf("PDF encryption key length must be a multiple of
8.\n");
> > >         return_error(gs_error_rangecheck);
> > >      }
> > > -    if (pdev->EncryptionR == 2 && (pdev->Permissions & (0xF << 8))) {
> > > +    if (pdev->EncryptionR == 2 &&
> > > +       ((pdev->Permissions & (0xFFFFFFC3)) != 0xFFFFFFC0)) {
> > >         eprintf("Some of Permissions are not allowed with R=2.\n");
> > >         return_error(gs_error_rangecheck);
> > >      }
> > > Russell Lang                   [email protected]
> > > Ghostgum Software Pty Ltd      http://www.ghostgum.com.au/
> > >
> > >
> > > _______________________________________________
> > > gs-code-review mailing list
> > > [email protected]
> > > http://www.ghostscript.com/mailman/listinfo/gs-code-review
> > >
> >
>
>
> Russell Lang                   [email protected]
> Ghostgum Software Pty Ltd      http://www.ghostgum.com.au/
>
>
>
>


----------------------------------------------------------------------------
----


> --- src/gdevpdf.c 2004-02-18 07:20:25.000000000 +1100
> +++ ./gdevpdf.c 2004-02-25 22:05:33.000000000 +1100
> @@ -203,7 +203,7 @@
>   {0, 0}, /* OwnerPassword */
>   {0, 0}, /* UserPassword */
>   0, /* KeyLength */
> - 4, /* Permissions */
> + -4, /* Permissions */
>   0, /* EncryptionR */
>   {0}, /* EncryptionO */
>   {0}, /* EncryptionU */
> @@ -545,7 +545,8 @@
>   eprintf("PDF encryption key length must be a multiple of 8.\n");
>   return_error(gs_error_rangecheck);
>      }
> -    if (pdev->EncryptionR == 2 && (pdev->Permissions & (0xF << 8))) {
> +    if (pdev->EncryptionR == 2 &&
> + ((pdev->Permissions & (0xFFFFFFC3)) != 0xFFFFFFC0)) {
>   eprintf("Some of Permissions are not allowed with R=2.\n");
>   return_error(gs_error_rangecheck);
>      }
>


----------------------------------------------------------------------------
----


> _______________________________________________
> gs-code-review mailing list
> [email protected]
> http://www.ghostscript.com/mailman/listinfo/gs-code-review
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.