Re: [pcre-dev] 8.31-RC1 test release is available

Top Page
Delete this message
Author: Philip Hazel
Date:  
To: Ralf Junker
CC: pcre-dev
Subject: Re: [pcre-dev] 8.31-RC1 test release is available
On Tue, 12 Jun 2012, Ralf Junker wrote:

> Pattern and subject below return different results when run with 8-bit
> and 16-bit DFA. The problem only shows when specifying the non-default
> ISO 8859 character tables (/T1).


The fault showed for me without the use of /T1 on Linux.

> Matching with pcre16_dfa_exec yields a "Pointer arithmetic underrun in process: pcretest.exe(4172)" in pcre_dfa_exec.c line 3208. This is the pcretest output for 16-bit:


I could not provoke that error on Linux. I did, however, find the bug
that was causing the 8-bit library to give a different (and incorrect)
answer to the 16-bit library.

> Note: Both 8-bit and 16-bit match identically if the non-ASCII chars \xA0 and \xBC are changed to ASCII (<= 127).


It turned out that there were three places in pcre_dfa_exec.c where "if
(utf)" had been accidentally omitted. Thus, code that should be run only
in UTF mode was being run unconditionally. I managed to create test
cases for the other two cases.

Codepoints > 127 provoked the bug in 8-bit mode. Others would have
caused a similar problem in 16-bit mode.

I have fixed the three bugs, updated the tests, and committed everything
(#979). Please test to see if this fixes the problem in your
environment.

Thanks for the testing.

Philip

--
Philip Hazel