[poppler] poppler/Stream.cc

Adam Reichold adam.reichold at t-online.de
Wed May 23 06:57:27 UTC 2018


Hello,

maybe the simplest solution would to turn inputBuf into an unsigned int
and convert to signed int after extracting the bits out of it?

Best regards,
Adam

Am 23.05.2018 um 00:24 schrieb Albert Astals Cid:
>  poppler/Stream.cc |    4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> New commits:
> commit 58e056c4b15f262b7715f8061d6885eb80044d0d
> Author: Albert Astals Cid <aacid at kde.org>
> Date:   Wed May 23 00:23:19 2018 +0200
> 
>     Revert 31c3832b996acbf04ea833e304d7d21ac4533a57
>     
>     So shifting left negative values is undefined behaviour according to the
>     spec but if we don't do it we break, so we seem to be depending on this
>     undefined behaviour, will try to figure out a better fix
> 
> diff --git a/poppler/Stream.cc b/poppler/Stream.cc
> index b6bfd838..4f075c12 100644
> --- a/poppler/Stream.cc
> +++ b/poppler/Stream.cc
> @@ -1445,9 +1445,7 @@ int LZWStream::getCode() {
>    while (inputBits < nextBits) {
>      if ((c = str->getChar()) == EOF)
>        return EOF;
> -    if (likely(inputBuf >= 0)) {
> -        inputBuf = (inputBuf << 8) | (c & 0xff);
> -    }
> +    inputBuf = (inputBuf << 8) | (c & 0xff);
>      inputBits += 8;
>    }
>    code = (inputBuf >> (inputBits - nextBits)) & ((1 << nextBits) - 1);
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/poppler
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/poppler/attachments/20180523/4eebea00/attachment.sig>


More information about the poppler mailing list