[poppler] poppler/Stream.cc

Albert Astals Cid aacid at kde.org
Wed May 23 19:24:59 UTC 2018


El dimecres, 23 de maig de 2018, a les 8:57:27 CEST, Adam Reichold va 
escriure:
> 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?

Yeah that sounds like a plan, could you try to produce a patch so i can run it 
through regtest?

Cheers,
  Albert

> 
> 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






More information about the poppler mailing list