Hi All
Referring to the snippet below.  I ran a comparison of all the z/OS PCRE 
library with the 8 bits PCRE library 8.33.  Except of the normal changes 
(forcing the CONFIG.h, changing all external names to z/OS mandated 8 
characters upper case and so on,) the code is identical between the two 
libraries.  Remember that ultimately, the library and the intended target 
character set are EBCDIC and not ASCII nor UTF-8.  That necessitated replacing 
'ÿ' with  \xFF and '^' with the IBM version "logical not" sign '¬'.  However, 
all those changes worked fine in all modules since 8.31 and they work fine in 
pcregrep.

I wonder whether pcre_dfa_exec.c, pcreposix.h or pcreposix.c contain some 
reference to ASCII specific character or sequence that might cause it to balk 
on EBCDIC.

I did find things like this in pcre_dfa_exec.c, which is obviously incorrect in 
EBCDIC context:
<snippet>
#ifdef PCRE_DEBUG
    printf ("%.*sProcessing state %d c=", rlevel*2-2, SP, state_offset);
    if (clen == 0) printf("EOL\n");
      else if (c > 32 && c < 127) printf("'%c'\n", c);
        else printf("0x%02x\n", c);
#endif
<snippet>

or 
<snippet>

#ifndef EBCDIC
          case 0x2028:
          case 0x2029:
#endif  /* Not EBCDIC */
<snippet>


which I do not know what to make of, but I do not think any of those caused the 
issue.
The program crashes in a loop using the pchars function and I believe it is 
pcretest.c itself.

<snippet> 
The -p option cause it (pcretest) to get into an infinite loop of printing \x00 
and ultimately crash when the program tries to write the next \x00 beyond the 
buffer size (I gave it 30K and it used all of them... the printout below just 
demonstrate the first 305 characters of the printout.) 


--------------------------------
PCRE version 8.33 2013-05-28

/-- This set of tests is for features that are compatible with all versions of
    Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
    16-bit PCRE libraries. --/

/the quick brown fox/
    the quick brown fox
 0:
 1: 
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
--------------------------------
<snippet
 
Ze'ev Atlas
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to