debian/0000755000000000000000000000000012674322720007173 5ustar debian/libpcre3.symbols.in0000644000000000000000000000215012674322720012713 0ustar libpcre.so.3 libpcre3 pcre_assign_jit_stack@Base 8.10 pcre_callout@Base 8.10 pcre_compile2@Base 8.10 pcre_compile@Base 8.10 pcre_config@Base 8.10 pcre_copy_named_substring@Base 8.10 pcre_copy_substring@Base 8.10 pcre_dfa_exec@Base 8.10 pcre_exec@Base 8.10 pcre_free@Base 8.10 pcre_free_study@Base 8.20 pcre_free_substring@Base 8.10 pcre_free_substring_list@Base 8.10 pcre_fullinfo@Base 8.10 pcre_get_named_substring@Base 8.10 pcre_get_stringnumber@Base 8.10 pcre_get_stringtable_entries@Base 8.10 pcre_get_substring@Base 8.10 pcre_get_substring_list@Base 8.10 pcre_info@Base 8.10 JIT pcre_jit_exec@Base 1:8.35 pcre_jit_free_unused_memory@Base 1:8.35 pcre_jit_stack_alloc@Base 8.10 pcre_jit_stack_free@Base 8.10 pcre_maketables@Base 8.10 pcre_malloc@Base 8.10 pcre_pattern_to_host_byte_order@Base 8.10 pcre_refcount@Base 8.10 pcre_stack_free@Base 8.10 pcre_stack_guard@Base 1:8.35 pcre_stack_malloc@Base 8.10 pcre_study@Base 8.10 pcre_version@Base 8.10 libpcreposix.so.3 libpcre3 pcreposix_regcomp@Base 8.10 pcreposix_regerror@Base 8.10 pcreposix_regexec@Base 8.10 pcreposix_regfree@Base 8.10 debian/libpcre16-3.symbols.in0000644000000000000000000000227212674322720013144 0ustar libpcre16.so.3 libpcre16-3 #MINVER# pcre16_assign_jit_stack@Base 2:8.35-4 pcre16_callout@Base 2:8.35-4 pcre16_compile2@Base 2:8.35-4 pcre16_compile@Base 2:8.35-4 pcre16_config@Base 2:8.35-4 pcre16_copy_named_substring@Base 2:8.35-4 pcre16_copy_substring@Base 2:8.35-4 pcre16_dfa_exec@Base 2:8.35-4 pcre16_exec@Base 2:8.35-4 pcre16_free@Base 2:8.35-4 pcre16_free_study@Base 2:8.35-4 pcre16_free_substring@Base 2:8.35-4 pcre16_free_substring_list@Base 2:8.35-4 pcre16_fullinfo@Base 2:8.35-4 pcre16_get_named_substring@Base 2:8.35-4 pcre16_get_stringnumber@Base 2:8.35-4 pcre16_get_stringtable_entries@Base 2:8.35-4 pcre16_get_substring@Base 2:8.35-4 pcre16_get_substring_list@Base 2:8.35-4 JIT pcre16_jit_exec@Base 2:8.35-4 pcre16_jit_free_unused_memory@Base 2:8.35-4 pcre16_jit_stack_alloc@Base 2:8.35-4 pcre16_jit_stack_free@Base 2:8.35-4 pcre16_maketables@Base 2:8.35-4 pcre16_malloc@Base 2:8.35-4 pcre16_pattern_to_host_byte_order@Base 2:8.35-4 pcre16_refcount@Base 2:8.35-4 pcre16_stack_free@Base 2:8.35-4 pcre16_stack_guard@Base 2:8.35-4 pcre16_stack_malloc@Base 2:8.35-4 pcre16_study@Base 2:8.35-4 pcre16_utf16_to_host_byte_order@Base 2:8.35-4 pcre16_version@Base 2:8.35-4 debian/libpcre3-udeb.install0000644000000000000000000000013112674322720013176 0ustar debian/tmp/usr/lib/*/libpcre.so.* usr/lib debian/tmp/usr/lib/*/libpcreposix.so.* usr/lib debian/libpcrecpp0v5.docs0000644000000000000000000000002512674322720012520 0ustar README AUTHORS NEWS debian/watch0000644000000000000000000000012412674322720010221 0ustar version=3 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-([\d\.]+)\.zip debian/jit-test0000644000000000000000000000022212674322720010655 0ustar #!/bin/sh arch=$(dpkg-architecture -qDEB_HOST_GNU_TYPE) $arch-gcc debian/jit-test.c -o/dev/null if [ $? -eq 0 ]; then echo "--enable-jit" fi debian/changelog0000644000000000000000000006530712674322720011060 0ustar pcre3 (2:8.38-3.1) unstable; urgency=medium * Non-maintainer upload. * CVE-2016-1283: heap buffer overflow in handling of duplicate named groups (Closes: #809706) -- Salvatore Bonaccorso Tue, 22 Mar 2016 21:05:13 +0100 pcre3 (2:8.38-3) unstable; urgency=low * Apply Ubuntu patch from Iain Lane (modified by Graham Inggs) to add symbols files (Closes: #767374) -- Matthew Vernon Sun, 28 Feb 2016 11:24:52 +0000 pcre3 (2:8.38-2) unstable; urgency=low * Apply upstream patch to fix workspace overflow for (*ACCEPT) with deeply nested parentheses (Closes: #815921) -- Matthew Vernon Sat, 27 Feb 2016 16:30:35 +0000 pcre3 (2:8.38-1) unstable; urgency=low * New upstream version -- Matthew Vernon Tue, 22 Dec 2015 13:37:39 +0000 pcre3 (2:8.35-8) unstable; urgency=low * Remove conflicts with long-vanished pcre{1,2}-dev packages (so new PCRE2 packages can co-exist) -- Matthew Vernon Sat, 21 Nov 2015 15:35:13 +0000 pcre3 (2:8.35-7.4) unstable; urgency=medium * Non-maintainer upload. * Fix copy-and-paste error in Disable_JIT_on_sparc64.patch. -- John Paul Adrian Glaubitz Mon, 02 Nov 2015 18:51:13 +0100 pcre3 (2:8.35-7.3) unstable; urgency=medium * Non-maintainer upload. * Add Disable_JIT_on_sparc64.patch to disable JIT on sparc64. The patch no_jit_x32_powerpcspe.patch to disable JIT on powerpcspe was already added in 2:8.35-6 (Closes: #765079). -- John Paul Adrian Glaubitz Mon, 02 Nov 2015 15:13:16 +0100 pcre3 (2:8.35-7.2) unstable; urgency=low * Non-maintainer upload (with maintainer's permission). * Add Fix-compiler-crash-misbehaviour-for-zero-repeated-gr.patch. Fixes "PCRE Library Stack Overflow Vulnerability" (Upstream bug 1503) * Add Fix-compile-time-loop-for-recursive-reference-within.patch. Fixes "PCRE Call Stack Overflow Vulnerability" (Upstream bug 1515) * Add 794589-information-disclosure.patch. Fixes "pcre_exec does not fill offsets for certain regexps" leading to information disclosure. (Closes: #794589) * Add Fix-bad-compile-for-groups-like-2-0-1999.patch. CVE-2015-2325: heap buffer overflow in compile_branch(). (Closes: #781795) * Add Fix-bad-compilation-for-patterns-like-1-1-with-forwa.patch. CVE-2015-2326: heap buffer overflow in pcre_compile2(). (Closes: #783285) * Add Fix-buffer-overflow-for-named-recursive-back-referen.patch. CVE-2015-3210: heap buffer overflow in pcre_compile2() / compile_regex(). (Closes: #787433) -- Salvatore Bonaccorso Fri, 11 Sep 2015 20:04:19 +0200 pcre3 (2:8.35-7.1) unstable; urgency=medium * Rename libpcrecpp0 to libpcrecpp0v5. Addresses: #791236. * Add Conflict/Replaces to the old library. * Add libpcrecpp0v5 symbols file for GCC 5. -- Matthias Klose Tue, 04 Aug 2015 20:23:03 +0200 pcre3 (2:8.35-7) unstable; urgency=medium * Apply upstream patch to fix buffer overflow for forward reference within backward assertion with excess closing parenthesis (Closes: #790000) -- Matthew Vernon Fri, 26 Jun 2015 08:08:55 +0100 pcre3 (2:8.35-6) unstable; urgency=low [ Thorsten Glaser ] * Re-add patch disabling JIT on powerpcspe and x32 (Closes: #760327) * Add back missing debian/changelog entries for 1:8.35-3.2 and 1:8.36-1 -- Matthew Vernon Sat, 13 Jun 2015 11:45:25 +0100 pcre3 (2:8.35-5) unstable; urgency=low * re-enable jit on ppc64el (by dropping the patch that disables it) (Closes: #786530) * patch from Frederic Bonnard to fix the watch file (Closes: #785726) -- Matthew Vernon Tue, 26 May 2015 08:27:56 +0100 pcre3 (2:8.35-4) experimental; urgency=medium [ Mattia Rizzolo ] * Add a libpcre16-3 package with the 16 bit pcre16 library (Closes: 748781). * Add a libpcre32-3 package with the 32 bit pcre32 library. [ Matthew Vernon ] * Adopt this package (Closes: #772994) -- Matthew Vernon Sat, 07 Mar 2015 19:27:34 +0000 pcre3 (2:8.35-3.3) unstable; urgency=medium * Non-maintainer upload. * Upstream patch for heap buffer overflow, CVE-2014-8964, taken from 1:8.36-1 (Closes: #770478) Thanks to Salvatore Bonaccorso for the reminder. -- Ivo De Decker Sat, 06 Dec 2014 19:58:19 +0100 pcre3 (2:8.35-3.2) unstable; urgency=medium * Non-maintainer upload. * Update shlibs dependency to 1:8.35 for new symbol introduced in upstream version 8.35 (Closes: #767907) * Revert upload of upstream version 8.36 to allow this upload to migrate to jessie. -- Ivo De Decker Sat, 06 Dec 2014 19:21:39 +0100 pcre3 (1:8.36-1) unstable; urgency=medium * New upstream release * Upped shlibs dependency to 8.35 (Closes: #767903) * Upstream patch for heap buffer overflow, CVE-2014-8964 (Closes: #770478) -- Mark Baker Mon, 24 Nov 2014 22:41:12 +0000 pcre3 (1:8.35-3.2) unstable; urgency=low * Non-maintainer upload with maintainer permission. * Disable JIT on x32 and powerpcspe (Closes: #760327). -- Thorsten Glaser Wed, 12 Nov 2014 14:30:23 +0000 pcre3 (1:8.35-3.1) unstable; urgency=medium * Non-maintainer upload. * Enable build hardening flags (closes: #656008). -- Michael Gilbert Fri, 19 Sep 2014 01:48:23 +0000 pcre3 (1:8.35-3) unstable; urgency=medium Thanks to Simon McVittie for all of the work on this: * Run tests with VERBOSE=1 so we can see the logs for failing tests (Closes: #755052) * Apply part of upstream r1472 to fix undefined behaviour when parsing {n} or {m,n} quantifiers, which causes mis-parsing and test failures under gcc 4.9 (Closes: #751828) -- Mark Baker Wed, 23 Jul 2014 21:19:41 +0100 pcre3 (1:8.35-2) unstable; urgency=medium * Build-depends on auto-reconf (Closes: 754540) -- Mark Baker Sat, 12 Jul 2014 23:03:47 +0100 pcre3 (1:8.35-1) unstable; urgency=medium * New upstream release * Use dh-autoreconf * Disable JIT on ppc64el (Closes: 751390) (Thanks Erwan Prioul) -- Mark Baker Fri, 11 Jul 2014 19:54:51 +0100 pcre3 (1:8.31-5) unstable; urgency=medium * Previous attempt at detecting JIT support didn't work when cross compiling. Now runs the host compiler, and doesn't try to run the output (Closes: 745222) -- Mark Baker Wed, 23 Apr 2014 21:00:35 +0100 pcre3 (1:8.31-4) unstable; urgency=medium * Enable JIT compilation only on architectures where it is supported - fixes FTBFS on ones where it isn't (Closes: 745114) * Verbose build logs (Closes: 745069) -- Mark Baker Fri, 18 Apr 2014 10:06:31 +0100 pcre3 (1:8.31-3) unstable; urgency=medium * Enable JIT regex compilation (http://sljit.sourceforge.net/pcre). Note that this has no effect by default so should not break anything; to use it you need to pass a flag to pcre_compile_regex() (Closes: 740954) * Changed shlibs:Depends to 8.20 as pcre_free_study() is not in older versions (Closes: 743164) -- Mark Baker Tue, 08 Apr 2014 22:37:58 +0100 pcre3 (1:8.31-2) unstable; urgency=low * Build -dev package as Multi-arch: same. Thanks Steve Langasek / Ubuntu for the patch (Closes: 696217) -- Mark Baker Thu, 03 Jan 2013 20:30:05 +0000 pcre3 (1:8.31-1) unstable; urgency=low * New upstream release * Applied patch from upstream bugzilla #1287 to fix bug where wrong value is in re_nsub in some cases (Closes: #686495) -- Mark Baker Thu, 13 Sep 2012 19:58:45 +0100 pcre3 (1:8.30-5) unstable; urgency=low * There is no use in including debug information for the libraries from the udeb in the debug package; more importantly, because the installation system isn't multiarch, if they are included they result in arch specific files in arch independent paths (debug package is Multi-arch:same). Removed. (Closes: #670018) -- Mark Baker Tue, 01 May 2012 22:38:42 +0100 pcre3 (1:8.30-4) unstable; urgency=low * Reluctantly using an epoch, as it seems the funny version number with extra dots causes problems * Bumped standard version to 3.9.3. No changes needed * Converted to use new source format / quilt * Put back obsolete pcre_info() API that up * Don't include pcregrep binary in debug package Thanks to Elimar Riesebieter for the conversion to the new source format. -- Mark Baker Fri, 23 Mar 2012 22:34:54 +0000 pcre3 (8.30..-3) unstable; urgency=low * configure: fixed libpcreposix version (this is not the same bug as the previous one, though it's in the same few lines) -- Mark Baker Thu, 22 Mar 2012 19:45:03 +0000 pcre3 (8.30..-2) unstable; urgency=low * configure: Correct library version so soname is libpcre.so.3 instead of .2 (Closes: #664983) * Horrible version number is because of NMU of "8.30.really8.12-1.1"; this will sort between that and 8.31-1 -- Mark Baker Thu, 22 Mar 2012 17:52:35 +0000 pcre3 (8.30-1) unstable; urgency=low * New upstream release (Closes:#664166) -- Mark Baker Wed, 21 Mar 2012 21:03:39 +0000 pcre3 (8.12-4) unstable; urgency=low * Multi-arch support. Thanks Steve Langasek for patch (Closes: 634250) -- Mark Baker Mon, 18 Jul 2011 21:59:44 +0100 pcre3 (8.12-3) unstable; urgency=low * debian/rules: Increased shlib version to 8.10 (Closes: #612942, #613227, #613469, #614012, #615019) -- Mark Baker Sun, 20 Feb 2011 12:46:44 +0000 pcre3 (8.12-2) unstable; urgency=low * Include changes from Stéphane's NMU (including fix for bug 581202) that were accidentally omitted in previous release. * debian/control: -dbg package should be section debug, priority extra -- Mark Baker Tue, 08 Feb 2011 20:38:49 +0000 pcre3 (8.12-1) unstable; urgency=low * New upstream release (Closes: #554242) -- Mark Baker Mon, 07 Feb 2011 23:53:42 +0000 pcre3 (8.02-1.1) unstable; urgency=low * Non-maintainer upload. * Add explicit Breaks to applications using libpcre-ocaml, to allow proper upgrades from lenny (Closes: #581202) * Add debian/watch * Add debian/source/format * Remove duplicate fields spotted by Lintian * Promote XC-Package-Type field to Package-Type -- Stéphane Glondu Sat, 31 Jul 2010 16:05:27 -0400 pcre3 (8.02-1) unstable; urgency=low * New upstream release -- Mark Baker Fri, 07 May 2010 21:18:05 +0100 pcre3 (7.8-3) unstable; urgency=low * debian/rules: Install main library in /lib (Closes: 350468, #549608) * debian/pcre-config.1: Minor formatting changes (thanks Alexander Peslyak) (Closes: 338658) * Makefile.am,Makefile.in: Added libpcre.la to LDADD for various things; apparently this will make it cross-build successfully (Closes: 492565) * debian/control: Added ${misc:Depends} to dependencies for all the binary packages * debian/rules: Don't ignore errors from make distclean -- Mark Baker Wed, 07 Oct 2009 00:05:25 +0100 pcre3 (7.8-2) unstable; urgency=low * debian/rules: Bumped shlib version to 7.7 because of new feature in that version (Closes: #500987) -- Mark Baker Sun, 05 Oct 2008 17:06:46 +0100 pcre3 (7.8-1) unstable; urgency=low * New upstream release -- Mark Baker Sun, 21 Sep 2008 21:23:00 +0100 pcre3 (7.6-2.1) unstable; urgency=high * Non-maintainer upload. * Fix heap overflow in the pcre compiler triggered by patterns which contain options and multiple branches (CVE-2008-2371; Closes: #488919). * debian/rules (patch by Bryan Donlan): Update shlibdeps invocation for libpcrecpp0 due to new symbols (Closes: #476925). * debian/copyright: replace license information with the current license information shipped with upstream sources (Closes: #489318). -- Nico Golde Mon, 14 Jul 2008 19:13:11 +0200 pcre3 (7.6-2) unstable; urgency=low * pcrecpp.cc: Applied patch from PCRE bugzilla (bug 664) to fix ABI breakage (Closes: #463170, #463266, #463413, #464974) -- Mark Baker Wed, 13 Feb 2008 22:19:35 +0000 pcre3 (7.6-1) unstable; urgency=low * New upstream release * Ship pcredemo.c in examples directory (Closes: #377587) -- Mark Baker Mon, 28 Jan 2008 23:01:05 +0000 pcre3 (7.4-1) unstable; urgency=low * Build a -dbg package with debug symbols Thanks to Sebastian Dröge ,for all of the following: * New upstream release (Closes: #453372). * debian/control, debian/rules: + Provide udeb (Closes: #443114). Build depend on debhelper (>= 5.0.22) for this. * debian/rules: + Bump shlibs to >= 7.4 (Closes: #449289). * debian/compat: + Update debhelper compat level to 5. * debian/control: + Update Standards-Version to 3.7.3, no additional changes needed. + Use ${binary:Version} instead of ${Source-Version} to make package binNMU safe. * debian/*.files, debian/*.install, debian/rules: + Convert from dh_movefiles to dh_install. * debian/*.dirs: + Removed, not necessary. -- Mark Baker Mon, 7 Jan 2008 21:03:34 +0000 pcre3 (7.3-2) unstable; urgency=low * Overloaded RE::Init(), for compatibility with PCRE 6.x API (Closes #436210). Thanks to Matthias Klose for the patch. * Increased shlibdeps from 4.5 to 6.0. 6.0 introduced a new function (pcre_compile2) to the API, so anything using that requires at least 6.0. (Closes #441345) -- Mark Baker Mon, 7 Jan 2008 21:02:52 +0000 pcre3 (7.3-1) unstable; urgency=low * New upstream release -- Mark Baker Tue, 28 Aug 2007 20:53:39 +0100 pcre3 (7.2-1) unstable; urgency=low * New upstream release (Closes: #420280) * debian/rules: dummy binary-indep target (Closes: #395730) -- Mark Baker Fri, 3 Aug 2007 23:06:28 +0100 pcre3 (6.7-1) unstable; urgency=low * New upstream release (Closes: #389305) -- Mark Baker Mon, 25 Sep 2006 23:24:55 +0100 pcre3 (6.4-2) unstable; urgency=low * Makefile.in: Install pcrepartial.3 (Closes: #362011) * doc/pcreapi.3, doc/pcre_version.3: document pcre_version() as returning a const char * not a char * (Closes: #278619) * debian/libpcre3-dev.files: install libpcre.pc (Closes: #359662) * doc/pcregrep.1: fixed typo (Closes: #310338) * debian/control: drop dummy pgrep package (Closes: #247550) -- Mark Baker Thu, 27 Apr 2006 22:32:06 +0100 pcre3 (6.4-1.1) unstable; urgency=low * Split out the C++ library into it's own package libpcrecpp0, as discussed in #339250. The C++ library was recently added, no package references the C++ library yet. Closes: #339250. * debian/rules: Remove testsavedregex in clean target. -- Matthias Klose Fri, 25 Nov 2005 07:59:14 +0100 pcre3 (6.4-1) unstable; urgency=low * New upstream release (Closes: 333191) -- Mark Baker Mon, 10 Oct 2005 23:14:53 +0100 pcre3 (6.3-1) unstable; urgency=low * New upstream release (Closes: 323761). * This includes fix to security issue CAN-2005-2491 (Closes: 324531) -- Mark Baker Sat, 27 Aug 2005 18:12:22 +0100 pcre3 (5.0-1.1) unstable; urgency=low * Non-maintainer upload. * Correct an alignment error in the pcretest.c test case, which was causing build failures on ia64 (closes: #309606). -- Steve Langasek Thu, 26 May 2005 05:15:34 +0000 pcre3 (5.0-1) unstable; urgency=low * New upstream release (Closes: #295287) - compatible, so same soname and package name can be used. * Compile with --enable-unicode-properties, a new feature of PCRE 5.0 * Removed . from description in control file * Included patch from Niibe Yutaka for cross building (Closes: #285407) Thanks Andreas for the NMU, which this is based on (Closes: #237644, #237265) -- Mark Baker Wed, 16 Feb 2005 21:47:14 +0000 pcre3 (4.5-1.1) unstable; urgency=low * NMU to fix rc-bugs. * Update libtool related files to fix build-error on mips, keep original config.in, as it is no generated file. (Closes: #237265) * pcregrep replaces pgrep. (Closes: #237564) * Bump shlibs, pcre 4.5 includes two new functions. * Let pgrep's /usr/share/doc symlink point to the package it depends on, pcregrep. -- Andreas Metzler Fri, 12 Mar 2004 13:23:02 +0100 pcre3 (4.5-1) unstable; urgency=low * New upstream release Thanks to Andreas Metzler for patches for all the following: * doc/pcregrep.1: added newline between synopsis for pcregrep and that for zpcregrp (Closes: #197899) * debian/control: Change package descriptions (Closes: #209904) * debian/rules and others: Renamed pgrep package to pcregrep, to match name of binary and avoid confusion with pgrep (which greps for processes, and is in the procps package; a dummy pgrep package will ease upgrades (Closes: #217076) -- Mark Baker Wed, 25 Feb 2004 20:49:33 +0000 pcre3 (4.3-4) unstable; urgency=low * debian/libpcre3.files: include pcrepattern(3) manpage in libpcre3 package instead of libpcre3-dev package. This means that anyone using a PCRE based application will have the man page available. -- Mark Baker Thu, 8 Jan 2004 21:19:51 +0000 pcre3 (4.3-3) unstable; urgency=low * ltmain.sh: Replaced with standard version from debian libtool package, but with Phil Hazel's patch applied (although I suspect his patch isn't necessary on debian systems). (Closes: #198147, #198668) I hope. -- Mark Baker Wed, 25 Jun 2003 21:09:22 +0100 pcre3 (4.3-2) unstable; urgency=low * pcretest.c: Cheat at test! Always print 40 instead of the size, because the size varies on different architectures, and we don't really want to fail the test because of this. -- Mark Baker Thu, 19 Jun 2003 21:00:39 +0100 pcre3 (4.3-1) unstable; urgency=low This release is entirely the work of Andreas Metzler . Thanks Andreas. * new upstream version (Closes: 182570) * this version apparently fixes infinite loop bug (Closes: 161184) * repacked using debhelper and upstream's Makefile. Switch to libtool's versioning scheme, see debian/README.Versioning.libtool for details. (Closes: #187371) * (however, don't ship .la files, they only give libtool strange ideas, see http://lists.debian.org/debian-devel/2003/debian-devel-200304/msg00827.html for an example.) * changed compile-options to really follow policy 3.5.7 * debian/control: changed description to say "Perl 5" as Perl 6, when it eventually appears, will have yet another different regex syntax (Closes: #166939) -- Mark Baker Mon, 16 Jun 2003 22:11:08 +0100 pcre3 (3.9-1) unstable; urgency=low * New upstream version (Closes: #119429, #161424) * Added zpcregrep script by Samuel Tardieu (Closes: #36897) * doc/pcregrep.1: mention zpcregrep * debian/rules: use && in test rule rather than -a option to test, for better POSIX compatibility (Closes: #158775) * debian/Makefile: build pcretest once with -rpath for doing tests, and once without, so that: * debian/rules: install pcretest program (Closes: #162998) * Don't create or remove /usr/doc/foo symlinks. This means that none of the packages have prerms and only libpcre3 has a postinst * debian/copyright: corrected to "Debian GNU/Linux" * debian/control: standards version updated to 3.5.7.0 * debian/rules: strip comment and note sections from libraries * The result of the last four changes is that it should now be lintian-clean apart from one caused by a known bug in lintian (see lintian bug #117260) (Closes: #162999) -- Mark Baker Sat, 26 Oct 2002 18:12:13 +0100 pcre3 (3.4-1.1) unstable; urgency=high * Non-maintainer upload. * Rebuild with a version of libc6 without a broken atexit() symbol (closes: #108597, critical). * Add to LD_LIBRARY_PATH rather than clobbering it, to avoid fakeroot dying (closes: #108661, #108891). -- Colin Watson Sun, 19 Aug 2001 20:43:28 +0100 pcre3 (3.4-1) unstable; urgency=low * new upstream version (Closes: #93876) -- Mark Baker Sat, 28 Apr 2001 00:05:22 +0100 pcre3 (3.3-5) unstable; urgency=low * debian/rules: install pcregrep as that name (only) rather than as pgrep with a symlink called pcregrep. This avoids a name clash with the process table grepper also called pgrep. * doc/pcregrep.1: change name of program being documented (back) to pcregrep. -- Mark Baker Tue, 23 Jan 2001 23:54:08 +0000 pcre3 (3.3-4) unstable; urgency=low * debian/rules: only install config files that are meant to be installed in libpcre3-dev package (Closes: #78354) * debian/Makefile: distclean target clears up configure output -- Mark Baker Wed, 29 Nov 2000 23:59:19 +0000 pcre3 (3.3-3) unstable; urgency=low * debian/rules: make debian/Makefile executable before trying to run it (Closes: #74316) -- Mark Baker Sun, 8 Oct 2000 21:18:15 +0100 pcre3 (3.3-2) unstable; urgency=low * debian/rules: pgrep should symlink to docs in /usr/doc/libpcre3, not /usr/doc/libpcre2 * debian/rules: manpage pgrep.1.gz should not be installed as executable! * debian/rules: pcregrep.1.gz is symlink to pgrep.1.gz * doc/pcre-config.1: basic manpage for pcre-config written * debian/rules: install pcre-config.1 * debian/rules: use -isp option to dpkg-gencontrol -- Mark Baker Tue, 22 Aug 2000 00:11:54 +0100 pcre3 (3.3-1) unstable; urgency=low * new package for pcre 3.x -- Mark Baker Sat, 19 Aug 2000 13:44:00 +0000 pcre2 (2.08-1) unstable; urgency=low What follows is the changelog from pcre2, up to the point where the pcre3 package was made. * new upstream version (#50386) * put -lc after -lpcre when linking libpcreposix (#50046) -- Mark Baker Thu, 18 Nov 1999 21:45:14 +0000 pcre2 (2.07-2) unstable; urgency=low * debian/rules: use /usr/share/doc and /usr/share/man, as mandated by policy 3.1.0 * debian/postinst: create /usr/doc symlink; don't install library * debian/postinst-lib (new file): create /usr/doc symlink and install library * debian/prerm: remove /usr/doc symlink * debian/rules: install postinst and prerm for all packages; but postinst-lib for library package -- Mark Baker Sat, 13 Nov 1999 18:57:59 +0000 pcre2 (2.07-1) unstable; urgency=low * new upstream version * pcre.c, pcre.h: new upstream version is incompatible with old one! I've done a nasty hack so that old binaries will still work. Old source won't, but at least it won't fail silently so this shouldn't be a major problem. * debian/rules: /usr/doc/pgrep should be a link to libpcre2, not libpcre1 (#42450) -- Mark Baker Tue, 3 Aug 1999 23:58:35 +0100 pcre2 (2.05-1) unstable; urgency=low * new upstream version (#36776) -- Mark Baker Tue, 27 Apr 1999 23:00:25 +0100 pcre2 (2.02-3) unstable; urgency=low * pcre.3: removed description of regular expression syntax and semantics * pcre.7: new file, containing material removed from above (this is so it can be put in the libpcre2 package (#34087) -- Mark Baker Fri, 5 Mar 1999 01:08:47 +0000 pcre2 (2.02-2) unstable; urgency=low * debian/rules: install copyright in correct location in libpcre2-dev; a typo before meant the package wouldn't install * debian/shlibs: update to refer to libpcre2 instead of libpcre1 -- Mark Baker Fri, 29 Jan 1999 00:12:00 +0000 pcre2 (2.02-1) unstable; urgency=low * first release of pcre2 * install source of pgrep (it's small) in /usr/doc/libpcre2-dev/examples -- Mark Baker Thu, 28 Jan 1999 00:45:00 +0000 pcre (1.09-2) unstable; urgency=low What follows is the changelog from pcre 1, up to the point where the pcre2 package was made. The changes are not that large but the API, and therefore the ABI, are changed so version 2 is not compatible. * pcreposix.c,pcreposix.h: prefixed function names with pcreposix_ * pcreposix.h: #defines so un-prefixed names can be used * These mean pcre routines will be used instead of the regex library built into libc (#22525) * debian/shlibs: pcreposix needs libpcre1 >=1.09-2 now * debian/rules: it's not pcre 1.01 any more. -- Mark Baker Sat, 30 May 1998 16:54:31 +0100 pcre (1.09-1) unstable; urgency=low * New upstream version -- Mark Baker Sat, 28 Feb 1998 21:29:07 +0000 pcre (1.08-1) unstable; urgency=low * New upstream version (new features, so in unstable only) -- Mark Baker Sat, 28 Feb 1998 21:29:07 +0000 pcre (1.06-3) unstable; urgency=low * Strip pgrep -- Mark Baker Sat, 28 Feb 1998 21:29:07 +0000 pcre (1.06-2) unstable; urgency=low * Extended description for pgrep * Compress manpage * Updated standards-version to 2.4.0.0 -- Mark Baker Mon, 9 Feb 1998 23:56:15 +0000 pcre (1.06-1) unstable; urgency=low * New upstream version (bug fixes) -- Mark Baker Sun, 25 Jan 1998 22:37:37 +0000 pcre (1.05-2) unstable; urgency=low * Remove debian/*~ in clean target * Only run ldconfig on "configure" -- Mark Baker Wed, 7 Jan 1998 21:14:51 +0000 pcre (1.05-1) unstable; urgency=low * New upstream version (bug fixes) -- Mark Baker Sat, 27 Dec 1997 11:26:32 +0000 pcre (1.02-1) unstable; urgency=low * New upstream version -- Mark Baker Sat, 13 Dec 1997 22:01:48 +0000 pcre (1.01-4) unstable; urgency=low * Use -fPIC instead of -fpic (identical on i386, but different on other architectures like m68k) * Nasty trick so pgrep gets the right dependencies whether or not libpcre1 is installed -- Mark Baker Tue, 2 Dec 1997 17:57:07 +0000 pcre (1.01-3) unstable; urgency=low * Apply patch to manpage from Karl Hegbloom * Rewritten makefile (copy sent upstream) -- Mark Baker Tue, 25 Nov 1997 12:12:05 +0000 pcre (1.01-2) unstable; urgency=low * Correct typo (libprce) in debian/rules * Use gcc instead of ld in makefile * Build static libraries * Use shlibdeps instead of hard-coding libc6 * Use --strip-unneeded when stripping -- Mark Baker Fri, 21 Nov 1997 23:52:06 +0000 pcre (1.01-1) unstable; urgency=low * Initial debian release -- Mark Baker Fri, 21 Nov 1997 20:36:13 +0000 debian/control0000644000000000000000000001021612674322720010576 0ustar Source: pcre3 Section: libs Priority: optional Maintainer: Matthew Vernon Standards-Version: 3.9.3 Build-Depends: debhelper (>= 5.0.22), dpkg-dev (>= 1.16.0), dh-autoreconf Package: libpcre3 Section: libs Architecture: any Priority: important Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libpcre3-dev (<= 4.3-3) Breaks: libpcre-ocaml (<< 6.0.1~), approx (<< 4.4-1~), cmigrep (<< 1.5-7~), ocsigen (<< 1.3.3-1~), cduce (<< 0.5.3-2~), galax (<< 1.1-7~), liquidsoap (<< 0.9.2-3~) Multi-Arch: same Pre-Depends: multiarch-support Description: Perl 5 Compatible Regular Expression Library - runtime files This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the runtime libraries. Package: libpcre3-udeb Section: debian-installer Package-Type: udeb Architecture: any Priority: important Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libpcre3-dev (<= 4.3-3) Description: Perl 5 Compatible Regular Expression Library - runtime files (udeb) This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the runtime libraries for the Debian Installer (udeb). Package: libpcrecpp0v5 Section: libs Architecture: any Priority: optional Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libpcre3 (<< 6.4-1.1), libpcrecpp0 Replaces: libpcre3 (<< 6.4-1.1), libpcrecpp0 Multi-Arch: same Pre-Depends: multiarch-support Description: Perl 5 Compatible Regular Expression Library - C++ runtime files This is a C++ library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the C++ runtime library. Package: libpcre3-dev Section: libdevel Architecture: any Multi-Arch: same Depends: libc6-dev, libpcre3 (= ${binary:Version}), libpcre16-3 (= ${binary:Version}), libpcre32-3 (= ${binary:Version}), libpcrecpp0v5 (= ${binary:Version}), ${misc:Depends} Description: Perl 5 Compatible Regular Expression Library - development files This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the development files, including headers, static libraries, and documentation. Package: libpcre3-dbg Section: debug Priority: extra Architecture: any Depends: libpcre3 (= ${binary:Version}), libpcrecpp0v5 (= ${binary:Version}), ${misc:Depends} Multi-Arch: same Description: Perl 5 Compatible Regular Expression Library - debug symbols This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the debug symbols, Package: pcregrep Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: pgrep (<<4.5) Description: grep utility that uses perl 5 compatible regexes. Perl-style regexps have many useful features that the standard POSIX ones don't; this is basically the same as grep but with the different regexp syntax. . The other reason for the existence of pcregrep is that its source code is an example of programming with libpcre. Package: libpcre16-3 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Description: Perl 5 Compatible Regular Expression Library - 16 bit runtime files This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the 16 bit runtime library. Package: libpcre32-3 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Description: Perl 5 Compatible Regular Expression Library - 32 bit runtime files This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. . This package contains the 32 bit runtime library. debian/libpcre32-3.install0000644000000000000000000000004412674322720012506 0ustar debian/tmp/usr/lib/*/libpcre32.so.* debian/libpcre3.docs0000644000000000000000000000002512674322720011545 0ustar README AUTHORS NEWS debian/libpcre3-dev.install0000644000000000000000000000025712674322720013046 0ustar debian/tmp/usr/include/* debian/tmp/usr/lib/*/lib*.a debian/tmp/usr/lib/*/lib*.so debian/tmp/usr/lib/*/pkgconfig/* debian/tmp/usr/bin/*-config debian/tmp/usr/share/man/man3/* debian/dirs0000644000000000000000000000002112674322720010050 0ustar usr/bin usr/sbin debian/zpcregrep0000644000000000000000000000004312674322720011114 0ustar #!/bin/sh GREP=pcregrep zgrep "$@" debian/libpcrecpp0v5.symbols0000644000000000000000000002036112674322720013265 0ustar libpcrecpp.so.0 libpcrecpp0v5 #MINVER# (c++)"operator<<(std::basic_ostream >&, pcrecpp::StringPiece const&)@Base" 8.38 (c++)"pcrecpp::Arg::parse_char(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_double(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_float(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_int(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_int_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_int_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_int_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_int_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_long(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_long_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_long_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_longlong(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_longlong_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_longlong_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_longlong_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_longlong_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_long_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_long_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_null(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_short(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_short_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_short_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_short_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_short_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_string(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_stringpiece(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uchar(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uint(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uint_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uint_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uint_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_uint_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulong(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulong_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulong_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulonglong(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulonglong_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulonglong_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulonglong_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulonglong_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulong_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ulong_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ushort(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ushort_cradix(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ushort_hex(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ushort_octal(char const*, int, void*)@Base" 7.7 (c++)"pcrecpp::Arg::parse_ushort_radix(char const*, int, void*, int)@Base" 7.7 (c++)"pcrecpp::RE::Cleanup()@Base" 7.7 (c++)"pcrecpp::RE::Compile(pcrecpp::RE::Anchor)@Base" 7.7 (c++)"pcrecpp::RE::Consume(pcrecpp::StringPiece*, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 (c++)"pcrecpp::Scanner::Consume(pcrecpp::RE const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&)@Base" 7.7 (c++)"pcrecpp::RE::DoMatchImpl(pcrecpp::StringPiece const&, pcrecpp::RE::Anchor, int*, pcrecpp::Arg const* const*, int, int*, int) const@Base" 7.7 (c++)"pcrecpp::RE::DoMatch(pcrecpp::StringPiece const&, pcrecpp::RE::Anchor, int*, pcrecpp::Arg const* const*, int) const@Base" 7.7 (c++)"pcrecpp::RE::Extract(pcrecpp::StringPiece const&, pcrecpp::StringPiece const&, std::__cxx11::basic_string, std::allocator >*) const@Base" 7.7 (c++)"pcrecpp::RE::FindAndConsume(pcrecpp::StringPiece*, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 (c++)"pcrecpp::RE::FullMatch(pcrecpp::StringPiece const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 (c++)"pcrecpp::RE::GlobalReplace(pcrecpp::StringPiece const&, std::__cxx11::basic_string, std::allocator >*) const@Base" 7.7 (c++)"pcrecpp::RE::Init(char const*, pcrecpp::RE_Options const*)@Base" 7.7 (c++)"pcrecpp::RE::Init(std::__cxx11::basic_string, std::allocator > const&, pcrecpp::RE_Options const*)@Base" 7.7 (c++)"pcrecpp::RE::no_arg@Base" 7.7 (c++)"pcrecpp::RE::NumberOfCapturingGroups() const@Base" 7.7 (c++)"pcrecpp::RE::PartialMatch(pcrecpp::StringPiece const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 (c++)"pcrecpp::RE::QuoteMeta[abi:cxx11](pcrecpp::StringPiece const&)@Base" 7.7 (c++)"pcrecpp::RE::~RE()@Base" 7.7 (c++)"pcrecpp::RE::~RE()@Base" 7.7 (c++)"pcrecpp::RE::Replace(pcrecpp::StringPiece const&, std::__cxx11::basic_string, std::allocator >*) const@Base" 7.7 (c++)"pcrecpp::RE::Rewrite(std::__cxx11::basic_string, std::allocator >*, pcrecpp::StringPiece const&, pcrecpp::StringPiece const&, int*, int) const@Base" 7.7 (c++)"pcrecpp::RE::TryMatch(pcrecpp::StringPiece const&, int, pcrecpp::RE::Anchor, bool, int*, int) const@Base" 7.7 (c++)"pcrecpp::Scanner::ConsumeSkip()@Base" 7.7 (c++)"pcrecpp::Scanner::DisableSkip()@Base" 7.7 (c++)"pcrecpp::Scanner::EnableSkip()@Base" 7.7 (c++)"pcrecpp::Scanner::GetComments(int, int, std::vector >*)@Base" 7.7 (c++)"pcrecpp::Scanner::GetNextComments(std::vector >*)@Base" 7.7 (c++)"pcrecpp::Scanner::LineNumber() const@Base" 7.7 (c++)"pcrecpp::Scanner::LookingAt(pcrecpp::RE const&) const@Base" 7.7 (c++)"pcrecpp::Scanner::Offset() const@Base" 7.7 (c++)"pcrecpp::Scanner::~Scanner()@Base" 7.7 (c++)"pcrecpp::Scanner::~Scanner()@Base" 7.7 (c++)"pcrecpp::Scanner::Scanner()@Base" 7.7 (c++)"pcrecpp::Scanner::Scanner()@Base" 7.7 (c++)"pcrecpp::Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&)@Base" 7.7 (c++)"pcrecpp::Scanner::Scanner(std::__cxx11::basic_string, std::allocator > const&)@Base" 7.7 (c++)"pcrecpp::Scanner::SetSkipExpression(char const*)@Base" 7.7 (c++)"pcrecpp::Scanner::Skip(char const*)@Base" 7.7 (c++)"std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, pcrecpp::StringPiece const&)@Base" 7.7 debian/README.Debian0000644000000000000000000000066412674322720011242 0ustar libpcre for debian ------------------ Upstream's library version is much lower than Debian's - PCRE_LIB_VERSION=0:1:0 instead of 13:0:10 (soname libpcre.so.0 instead of libpcre.so.3) The other change I made is to prefix the names of the functions in libpcreposix with "pcreposix_". This is required so they don't clash with the ones in libc. Suitable #defines have been added to pcreposix.h so that the unprefixed names can be used. debian/jit-test.c0000644000000000000000000000057612674322720011112 0ustar // This little program runs the macros in the SLJIT header file // which auto-detect architecture. This enables us to only attempt // to use SLJIT on architectures that support it // #define SLJIT_CONFIG_AUTO 1 #include "../sljit/sljitConfigInternal.h" #ifndef SLJIT_CONFIG_UNSUPPORTED #warning JIT enabled #else #error JIT not supported #endif int main(void) { return 0; } debian/libpcre16-3.install0000644000000000000000000000004412674322720012510 0ustar debian/tmp/usr/lib/*/libpcre16.so.* debian/rules0000755000000000000000000001136412674322720010260 0ustar #!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) INSTALL = install INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755 INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NJOBS = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) endif ENABLE_JIT=$(shell . debian/jit-test) configure-stamp: dh_testdir # Add here commands to configure the package. dh_autoreconf CC_FOR_BUILD=cc ./configure \ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --enable-utf8 --enable-unicode-properties \ --disable-silent-rules \ $(ENABLE_JIT) \ --enable-pcre16 \ --enable-pcre32 \ $(shell DEB_CFLAGS_MAINT_APPEND=-Wall DEB_BUILD_MAINT_OPTIONS=hardening=+all dpkg-buildflags --export=configure) touch configure-stamp build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. $(MAKE) $(NJOBS) ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) $(MAKE) check VERBOSE=1 endif touch build-stamp clean: dh_testdir dh_testroot rm -f configure-stamp build-stamp # Add here commands to clean up after the build process. [ ! -f Makefile ] || $(MAKE) distclean ### -test -r /usr/share/misc/config.sub && \ ### cp -f /usr/share/misc/config.sub config.sub ### -test -r /usr/share/misc/config.guess && \ ### cp -f /usr/share/misc/config.guess config.guess rm -f dftables testsavedregex rm -f debian/libpcre3.symbols rm -f debian/libpcre16-3.symbols rm -f debian/libpcre32-3.symbols dh_autoreconf_clean dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tmp $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp # Build architecture-dependent files here. binary-arch: build install dh_testdir -a dh_testroot -a dh_install -a # This man page is in the main package, don't want it in -dev rm debian/libpcre3-dev/usr/share/man/man3/pcrepattern.3 # Move actual library to /lib mkdir -p debian/libpcre3/lib/$(DEB_HOST_MULTIARCH) mv debian/libpcre3/usr/lib/$(DEB_HOST_MULTIARCH)/libpcre.so.* debian/libpcre3/lib/$(DEB_HOST_MULTIARCH) ln -sf /lib/$(DEB_HOST_MULTIARCH)/libpcre.so.3 debian/libpcre3-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libpcre.so # we never need to reference the library path in pcre-config on # Debian, so clip it out so that the script will be multiarch-safe. sed -i -e"s,/$(DEB_HOST_MULTIARCH),,g" debian/libpcre3-dev/usr/bin/pcre-config dh_link -a # dh_installdebconf -a dh_installdocs -a dh_installexamples -a # dh_installmenu -a # dh_installlogrotate -a # dh_installemacsen -a # dh_installpam -a # dh_installmime -a # dh_installinit -a # dh_installcron -a dh_installman -a dh_installinfo -a # dh_undocumented -a dh_installchangelogs -a ChangeLog dh_strip -a --dbg-package=libpcre3-dbg # Don't include pcregrep or libraries from udeb in debug package rm -r debian/libpcre3-dbg/usr/lib/debug/usr/bin rm debian/libpcre3-dbg/usr/lib/debug/usr/lib/libpcre* dh_compress -a dh_fixperms -a ifneq (,$(ENABLE_JIT)) sed -e 's/JIT//' debian/libpcre3.symbols.in > debian/libpcre3.symbols sed -e 's/JIT//' debian/libpcre16-3.symbols.in > debian/libpcre16-3.symbols sed -e 's/JIT//' debian/libpcre32-3.symbols.in > debian/libpcre32-3.symbols else sed -e 's/JIT/#/' debian/libpcre3.symbols.in > debian/libpcre3.symbols sed -e 's/JIT/#/' debian/libpcre16-3.symbols.in > debian/libpcre16-3.symbols sed -e 's/JIT/#/' debian/libpcre32-3.symbols.in > debian/libpcre32-3.symbols endif dh_makeshlibs -plibpcre3 --add-udeb="libpcre3-udeb" -V 'libpcre3 (>= 1:8.35)' -- -c4 dh_makeshlibs -plibpcrecpp0v5 -V 'libpcrecpp0v5 (>= 7.7)' -- -c4 dh_makeshlibs -plibpcre16-3 -plibpcre32-3 -- -c4 dh_installdeb -a # dh_perl -a dh_shlibdeps -a -ldebian/libpcre3/usr/lib/$(DEB_HOST_MULTIARCH) dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary-indep: binary: binary-arch binary-indep .PHONY: build clean binary-arch binary install debian/libpcre32-3.symbols.in0000644000000000000000000000227212674322720013142 0ustar libpcre32.so.3 libpcre32-3 #MINVER# pcre32_assign_jit_stack@Base 2:8.35-4 pcre32_callout@Base 2:8.35-4 pcre32_compile2@Base 2:8.35-4 pcre32_compile@Base 2:8.35-4 pcre32_config@Base 2:8.35-4 pcre32_copy_named_substring@Base 2:8.35-4 pcre32_copy_substring@Base 2:8.35-4 pcre32_dfa_exec@Base 2:8.35-4 pcre32_exec@Base 2:8.35-4 pcre32_free@Base 2:8.35-4 pcre32_free_study@Base 2:8.35-4 pcre32_free_substring@Base 2:8.35-4 pcre32_free_substring_list@Base 2:8.35-4 pcre32_fullinfo@Base 2:8.35-4 pcre32_get_named_substring@Base 2:8.35-4 pcre32_get_stringnumber@Base 2:8.35-4 pcre32_get_stringtable_entries@Base 2:8.35-4 pcre32_get_substring@Base 2:8.35-4 pcre32_get_substring_list@Base 2:8.35-4 JIT pcre32_jit_exec@Base 2:8.35-4 pcre32_jit_free_unused_memory@Base 2:8.35-4 pcre32_jit_stack_alloc@Base 2:8.35-4 pcre32_jit_stack_free@Base 2:8.35-4 pcre32_maketables@Base 2:8.35-4 pcre32_malloc@Base 2:8.35-4 pcre32_pattern_to_host_byte_order@Base 2:8.35-4 pcre32_refcount@Base 2:8.35-4 pcre32_stack_free@Base 2:8.35-4 pcre32_stack_guard@Base 2:8.35-4 pcre32_stack_malloc@Base 2:8.35-4 pcre32_study@Base 2:8.35-4 pcre32_utf32_to_host_byte_order@Base 2:8.35-4 pcre32_version@Base 2:8.35-4 debian/patches/0000755000000000000000000000000012674322720010622 5ustar debian/patches/series0000644000000000000000000000031712674322720012040 0ustar PCRE6_compatible_API.patch pcreposix.patch pcre_info.patch pcregrep.1-patch soname.patch no_jit_x32_powerpcspe.patch Disable_JIT_on_sparc64.patch apply-upstream-revision-1631-closes-8159 CVE-2016-1283.patch debian/patches/Fix-compiler-crash-misbehaviour-for-zero-repeated-gr.patch0000644000000000000000000001042612674322720023733 0ustar Description: PCRE Library Stack Overflow Vulnerability Fix compiler crash/misbehaviour for zero-repeated groups that include a recursive back reference. Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1495 Bug: https://bugs.exim.org/show_bug.cgi?id=1503 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: 8.36 --- --- a/pcre_compile.c +++ b/pcre_compile.c @@ -8241,12 +8241,16 @@ for (;;) /* If it was a capturing subpattern, check to see if it contained any recursive back references. If so, we must wrap it in atomic brackets. - In any event, remove the block from the chain. */ + Because we are moving code along, we must ensure that any pending recursive + references are updated. In any event, remove the block from the chain. */ if (capnumber > 0) { if (cd->open_caps->flag) { + *code = OP_END; + adjust_recurse(start_bracket, 1 + LINK_SIZE, + (options & PCRE_UTF8) != 0, cd, cd->hwm); memmove(start_bracket + 1 + LINK_SIZE, start_bracket, IN_UCHARS(code - start_bracket)); *start_bracket = OP_ONCE; --- a/testdata/testinput11 +++ b/testdata/testinput11 @@ -132,4 +132,6 @@ is required for these tests. --/ /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B +/(((a\2)|(a*)\g<-1>))*a?/B + /-- End of testinput11 --/ --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4035,6 +4035,8 @@ backtracking verbs. --/ /(?(R&6yh)abc)/ +/(((a\2)|(a*)\g<-1>))*a?/BZ + /-- Test the ugly "start or end of word" compatibility syntax --/ /[[:<:]]red[[:>:]]/BZ --- a/testdata/testoutput11-16 +++ b/testdata/testoutput11-16 @@ -709,4 +709,28 @@ Memory allocation (code space): 14 62 End ------------------------------------------------------------------ +/(((a\2)|(a*)\g<-1>))*a?/B +------------------------------------------------------------------ + 0 39 Bra + 2 Brazero + 3 32 SCBra 1 + 6 27 Once + 8 12 CBra 2 + 11 7 CBra 3 + 14 a + 16 \2 + 18 7 Ket + 20 11 Alt + 22 5 CBra 4 + 25 a* + 27 5 Ket + 29 22 Recurse + 31 23 Ket + 33 27 Ket + 35 32 KetRmax + 37 a?+ + 39 39 Ket + 41 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput11-32 +++ b/testdata/testoutput11-32 @@ -709,4 +709,28 @@ Memory allocation (code space): 28 62 End ------------------------------------------------------------------ +/(((a\2)|(a*)\g<-1>))*a?/B +------------------------------------------------------------------ + 0 39 Bra + 2 Brazero + 3 32 SCBra 1 + 6 27 Once + 8 12 CBra 2 + 11 7 CBra 3 + 14 a + 16 \2 + 18 7 Ket + 20 11 Alt + 22 5 CBra 4 + 25 a* + 27 5 Ket + 29 22 Recurse + 31 23 Ket + 33 27 Ket + 35 32 KetRmax + 37 a?+ + 39 39 Ket + 41 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput11-8 +++ b/testdata/testoutput11-8 @@ -709,4 +709,28 @@ Memory allocation (code space): 10 76 End ------------------------------------------------------------------ +/(((a\2)|(a*)\g<-1>))*a?/B +------------------------------------------------------------------ + 0 57 Bra + 3 Brazero + 4 48 SCBra 1 + 9 40 Once + 12 18 CBra 2 + 17 10 CBra 3 + 22 a + 24 \2 + 27 10 Ket + 30 16 Alt + 33 7 CBra 4 + 38 a* + 40 7 Ket + 43 33 Recurse + 46 34 Ket + 49 40 Ket + 52 48 KetRmax + 55 a?+ + 57 57 Ket + 60 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14093,6 +14093,30 @@ Failed: malformed number or name after ( /(?(R&6yh)abc)/ Failed: group name must start with a non-digit at offset 5 +/(((a\2)|(a*)\g<-1>))*a?/BZ +------------------------------------------------------------------ + Bra + Brazero + SCBra 1 + Once + CBra 2 + CBra 3 + a + \2 + Ket + Alt + CBra 4 + a* + Ket + Recurse + Ket + Ket + KetRmax + a?+ + Ket + End +------------------------------------------------------------------ + /-- Test the ugly "start or end of word" compatibility syntax --/ /[[:<:]]red[[:>:]]/BZ debian/patches/794589-information-disclosure.patch0000644000000000000000000000212612674322720017132 0ustar Description: pcre_exec does not fill offsets for certain regexps Origin: upstream, http://vcs.pcre.org/pcre/code/trunk/pcre_exec.c?r1=1502&r2=1510 Bug: https://bugs.exim.org/show_bug.cgi?id=1537 Bug-Debian: https://bugs.debian.org/794589 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: 8.37 --- a/pcre_exec.c +++ b/pcre_exec.c @@ -1467,7 +1467,18 @@ for (;;) md->offset_vector[offset] = md->offset_vector[md->offset_end - number]; md->offset_vector[offset+1] = (int)(eptr - md->start_subject); - if (offset_top <= offset) offset_top = offset + 2; + + /* If this group is at or above the current highwater mark, ensure that + any groups between the current high water mark and this group are marked + unset and then update the high water mark. */ + + if (offset >= offset_top) + { + register int *iptr = md->offset_vector + offset_top; + register int *iend = md->offset_vector + offset; + while (iptr < iend) *iptr++ = -1; + offset_top = offset + 2; + } } ecode += 1 + IMM2_SIZE; break; debian/patches/Fix-bad-compile-for-groups-like-2-0-1999.patch0000644000000000000000000001766612674322720020513 0ustar Description: CVE-2015-2325: heap buffer overflow in compile_branch() Fix bad compile for groups like "((?2){0,1999}())?". Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1528 Bug: http://bugs.exim.org/show_bug.cgi?id=1591 Bug-Debian: https://bugs.debian.org/781795 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: 8.37 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -3933,14 +3933,14 @@ Arguments: adjust the amount by which the group is to be moved utf TRUE in UTF-8 / UTF-16 / UTF-32 mode cd contains pointers to tables etc. - save_hwm the hwm forward reference pointer at the start of the group + save_hwm_offset the hwm forward reference offset at the start of the group Returns: nothing */ static void adjust_recurse(pcre_uchar *group, int adjust, BOOL utf, compile_data *cd, - pcre_uchar *save_hwm) + size_t save_hwm_offset) { pcre_uchar *ptr = group; @@ -3952,7 +3952,8 @@ while ((ptr = (pcre_uchar *)find_recurse /* See if this recursion is on the forward reference list. If so, adjust the reference. */ - for (hc = save_hwm; hc < cd->hwm; hc += LINK_SIZE) + for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; + hc += LINK_SIZE) { offset = (int)GET(hc, 0); if (cd->start_code + offset == ptr + 1) @@ -4397,7 +4398,7 @@ const pcre_uchar *tempptr; const pcre_uchar *nestptr = NULL; pcre_uchar *previous = NULL; pcre_uchar *previous_callout = NULL; -pcre_uchar *save_hwm = NULL; +size_t save_hwm_offset = 0; pcre_uint8 classbits[32]; /* We can fish out the UTF-8 setting once and for all into a BOOL, but we @@ -5909,7 +5910,7 @@ for (;; ptr++) if (repeat_max <= 1) /* Covers 0, 1, and unlimited */ { *code = OP_END; - adjust_recurse(previous, 1, utf, cd, save_hwm); + adjust_recurse(previous, 1, utf, cd, save_hwm_offset); memmove(previous + 1, previous, IN_UCHARS(len)); code++; if (repeat_max == 0) @@ -5933,7 +5934,7 @@ for (;; ptr++) { int offset; *code = OP_END; - adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm); + adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm_offset); memmove(previous + 2 + LINK_SIZE, previous, IN_UCHARS(len)); code += 2 + LINK_SIZE; *previous++ = OP_BRAZERO + repeat_type; @@ -5996,26 +5997,25 @@ for (;; ptr++) for (i = 1; i < repeat_min; i++) { pcre_uchar *hc; - pcre_uchar *this_hwm = cd->hwm; + size_t this_hwm_offset = cd->hwm - cd->start_workspace; memcpy(code, previous, IN_UCHARS(len)); while (cd->hwm > cd->start_workspace + cd->workspace_size - - WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm)) + WORK_SIZE_SAFETY_MARGIN - + (this_hwm_offset - save_hwm_offset)) { - int save_offset = save_hwm - cd->start_workspace; - int this_offset = this_hwm - cd->start_workspace; *errorcodeptr = expand_workspace(cd); if (*errorcodeptr != 0) goto FAILED; - save_hwm = (pcre_uchar *)cd->start_workspace + save_offset; - this_hwm = (pcre_uchar *)cd->start_workspace + this_offset; } - for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) + for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; + hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset; + hc += LINK_SIZE) { PUT(cd->hwm, 0, GET(hc, 0) + len); cd->hwm += LINK_SIZE; } - save_hwm = this_hwm; + save_hwm_offset = this_hwm_offset; code += len; } } @@ -6060,7 +6060,7 @@ for (;; ptr++) else for (i = repeat_max - 1; i >= 0; i--) { pcre_uchar *hc; - pcre_uchar *this_hwm = cd->hwm; + size_t this_hwm_offset = cd->hwm - cd->start_workspace; *code++ = OP_BRAZERO + repeat_type; @@ -6082,22 +6082,21 @@ for (;; ptr++) copying them. */ while (cd->hwm > cd->start_workspace + cd->workspace_size - - WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm)) + WORK_SIZE_SAFETY_MARGIN - + (this_hwm_offset - save_hwm_offset)) { - int save_offset = save_hwm - cd->start_workspace; - int this_offset = this_hwm - cd->start_workspace; *errorcodeptr = expand_workspace(cd); if (*errorcodeptr != 0) goto FAILED; - save_hwm = (pcre_uchar *)cd->start_workspace + save_offset; - this_hwm = (pcre_uchar *)cd->start_workspace + this_offset; } - for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) + for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; + hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset; + hc += LINK_SIZE) { PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1)); cd->hwm += LINK_SIZE; } - save_hwm = this_hwm; + save_hwm_offset = this_hwm_offset; code += len; } @@ -6193,7 +6192,7 @@ for (;; ptr++) { int nlen = (int)(code - bracode); *code = OP_END; - adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm); + adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); memmove(bracode + 1 + LINK_SIZE, bracode, IN_UCHARS(nlen)); code += 1 + LINK_SIZE; nlen += 1 + LINK_SIZE; @@ -6327,7 +6326,7 @@ for (;; ptr++) else { *code = OP_END; - adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm); + adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); code += 1 + LINK_SIZE; len += 1 + LINK_SIZE; @@ -6376,7 +6375,7 @@ for (;; ptr++) default: *code = OP_END; - adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm); + adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); code += 1 + LINK_SIZE; len += 1 + LINK_SIZE; @@ -6408,7 +6407,7 @@ for (;; ptr++) newoptions = options; skipbytes = 0; bravalue = OP_CBRA; - save_hwm = cd->hwm; + save_hwm_offset = cd->hwm - cd->start_workspace; reset_bracount = FALSE; /* First deal with various "verbs" that can be introduced by '*'. */ @@ -7701,7 +7700,7 @@ for (;; ptr++) const pcre_uchar *p; pcre_uint32 cf; - save_hwm = cd->hwm; /* Normally this is set when '(' is read */ + save_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; @@ -8247,7 +8246,7 @@ for (;;) { *code = OP_END; adjust_recurse(start_bracket, 1 + LINK_SIZE, - (options & PCRE_UTF8) != 0, cd, cd->hwm); + (options & PCRE_UTF8) != 0, cd, cd->hwm - cd->start_workspace); memmove(start_bracket + 1 + LINK_SIZE, start_bracket, IN_UCHARS(code - start_bracket)); *start_bracket = OP_ONCE; --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4064,4 +4064,6 @@ backtracking verbs. --/ /(((((a)))))/Q +"((?2){0,1999}())?" + /-- End of testinput2 --/ --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14173,4 +14173,6 @@ Failed: parentheses are too deeply neste /(((((a)))))/Q ** Missing 0 or 1 after /Q +"((?2){0,1999}())?" + /-- End of testinput2 --/ debian/patches/Fix-compile-time-loop-for-recursive-reference-within.patch0000644000000000000000000000512712674322720023754 0ustar Description: PCRE Call Stack Overflow Vulnerability Fix compile-time loop for recursive reference within a group with an indefinite repeat. Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1498 Bug: https://bugs.exim.org/show_bug.cgi?id=1515 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: 8.36 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -2367,6 +2367,7 @@ for (code = first_significant_code(code if (c == OP_RECURSE) { const pcre_uchar *scode = cd->start_code + GET(code, 1); + const pcre_uchar *endgroup = scode; BOOL empty_branch; /* Test for forward reference or uncompleted reference. This is disabled @@ -2381,24 +2382,20 @@ for (code = first_significant_code(code if (GET(scode, 1) == 0) return TRUE; /* Unclosed */ } - /* If we are scanning a completed pattern, there are no forward references - and all groups are complete. We need to detect whether this is a recursive - call, as otherwise there will be an infinite loop. If it is a recursion, - just skip over it. Simple recursions are easily detected. For mutual - recursions we keep a chain on the stack. */ + /* If the reference is to a completed group, we need to detect whether this + is a recursive call, as otherwise there will be an infinite loop. If it is + a recursion, just skip over it. Simple recursions are easily detected. For + mutual recursions we keep a chain on the stack. */ + do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); + if (code >= scode && code <= endgroup) continue; /* Simple recursion */ else - { + { recurse_check *r = recurses; - const pcre_uchar *endgroup = scode; - - do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); - if (code >= scode && code <= endgroup) continue; /* Simple recursion */ - for (r = recurses; r != NULL; r = r->prev) if (r->group == scode) break; if (r != NULL) continue; /* Mutual recursion */ - } + } /* Completed reference; scan the referenced group, remembering it on the stack chain to detect mutual recursions. */ --- a/testdata/testinput1 +++ b/testdata/testinput1 @@ -4937,6 +4937,12 @@ however, we need the complication for Pe /((?(R1)a+|(?1)b))/ aaaabcde + +/((?(R)a|(?1)))*/ + aaa + +/((?(R)a|(?1)))+/ + aaa /a(*:any name)/K --- a/testdata/testoutput1 +++ b/testdata/testoutput1 @@ -8234,6 +8234,16 @@ MK: M aaaabcde 0: aaaab 1: aaaab + +/((?(R)a|(?1)))*/ + aaa + 0: aaa + 1: a + +/((?(R)a|(?1)))+/ + aaa + 0: aaa + 1: a /a(*:any name)/K debian/patches/pcregrep.1-patch0000644000000000000000000000165112674322720013613 0ustar From: Mark Baker Description: Mention zpcregrep wrapper script in pcregrep man page. Index: pcre3/doc/pcregrep.1 =================================================================== --- pcre3.orig/doc/pcregrep.1 2014-04-04 14:37:38.000000000 +0100 +++ pcre3/doc/pcregrep.1 2015-12-22 12:39:07.000000000 +0000 @@ -3,6 +3,7 @@ pcregrep - a grep with Perl-compatible regular expressions. .SH SYNOPSIS .B pcregrep [options] [long options] [pattern] [path1 path2 ...] +.B zpcregrep [options] [long options] [pattern] [file1 file2 ...] . .SH DESCRIPTION .rs @@ -87,6 +88,9 @@ If the \fBLC_ALL\fP or \fBLC_CTYPE\fP environment variable is set, \fBpcregrep\fP uses the value to set a locale when calling the PCRE library. The \fB--locale\fP option can be used to override this. +.P +\fBzpcregrep\fR is a wrapper script that allows pcregrep to work on +gzip compressed files. . . .SH "SUPPORT FOR COMPRESSED FILES" debian/patches/CVE-2016-1283.patch0000644000000000000000000000314312674322720013242 0ustar From b7537308b7c758f33c347cb0bec62754c43c271f Mon Sep 17 00:00:00 2001 From: ph10 Date: Sat, 27 Feb 2016 17:38:11 +0000 Subject: [PATCH] Yet another duplicate name bugfix by overestimating the memory needed (i.e. another hack - PCRE2 has this "properly" fixed). git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1636 2f5784b3-3f2a-0410-8824-cb99058d5e15 --- pcre_compile.c | 7 ++++++- testdata/testinput2 | 2 ++ testdata/testoutput2 | 2 ++ 4 files changed, 17 insertions(+), 1 deletion(-) --- a/pcre_compile.c +++ b/pcre_compile.c @@ -7289,7 +7289,12 @@ for (;; ptr++) so far in order to get the number. If the name is not found, leave the value of recno as 0 for a forward reference. */ - else + /* This patch (removing "else") fixes a problem when a reference is + to multiple identically named nested groups from within the nest. + Once again, it is not the "proper" fix, and it results in an + over-allocation of memory. */ + + /* else */ { ng = cd->named_groups; for (i = 0; i < cd->names_found; i++, ng++) --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4217,4 +4217,6 @@ backtracking verbs. --/ /a[[:punct:]b]/BZ +/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ + /-- End of testinput2 --/ --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14574,4 +14574,6 @@ No match End ------------------------------------------------------------------ +/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ + /-- End of testinput2 --/ debian/patches/fix_find_fixedlength.patch0000644000000000000000000000163012674322720016012 0ustar Description: Fix buffer overflow for forward reference within backward assertion with excess closing parenthesis. Strictly, this is a backport, but the patch is trivial. Origin: upstream http://vcs.pcre.org/pcre?view=revision&revision=1571 Bug: https://bugs.exim.org/show_bug.cgi?id=1651 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790000 Last-Update: 2015-06-26 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ Index: b/pcre_compile.c =================================================================== --- a/pcre_compile.c 2015-05-26 08:24:55.000000000 +0100 +++ b/pcre_compile.c 2015-06-26 08:00:13.000000000 +0100 @@ -9265,7 +9265,7 @@ exceptional ones forgo this. We scan the pattern to check that they are fixed length, and set their lengths. */ -if (cd->check_lookbehind) +if (errorcode == 0 && cd->check_lookbehind) { pcre_uchar *cc = (pcre_uchar *)codestart; debian/patches/Disable_JIT_on_sparc64.patch0000644000000000000000000000152312674322720015753 0ustar Description: Disable JIT on sparc64 as it needs explicit porting The test suite currently fails on sparc64 when the JIT is enabled as the JIT has not been ported to sparc64 yet. Thus, disable JIT until it has been explicitly ported to sparc64. . Index: pcre3/sljit/sljitConfigInternal.h =================================================================== --- pcre3.orig/sljit/sljitConfigInternal.h 2015-12-22 13:30:50.000000000 +0000 +++ pcre3/sljit/sljitConfigInternal.h 2015-12-22 13:33:30.000000000 +0000 @@ -145,7 +145,11 @@ #elif defined(__mips64) #define SLJIT_CONFIG_MIPS_64 1 #elif defined(__sparc__) || defined(__sparc) -#define SLJIT_CONFIG_SPARC_32 1 +# if defined(__arch64__) +# define SLJIT_CONFIG_UNSUPPORTED 1 +# else +# define SLJIT_CONFIG_SPARC_32 1 +# endif #elif defined(__tilegx__) #define SLJIT_CONFIG_TILEGX 1 #else debian/patches/soname.patch0000644000000000000000000000152012674322720013123 0ustar From: Mark Baker Description: Change soname to what debian use Index: pcre3/configure.ac =================================================================== --- pcre3.orig/configure.ac 2015-12-22 13:27:15.000000000 +0000 +++ pcre3/configure.ac 2015-12-22 13:28:37.000000000 +0000 @@ -17,10 +17,10 @@ # 50 lines of this file. Please update that if the variables above are moved. # Libtool shared library interface versions (current:revision:age) -m4_define(libpcre_version, [3:6:2]) -m4_define(libpcre16_version, [2:6:2]) -m4_define(libpcre32_version, [0:6:0]) -m4_define(libpcreposix_version, [0:3:0]) +m4_define(libpcre_version, [16:2:13]) +m4_define(libpcre16_version, [16:2:13]) +m4_define(libpcre32_version, [16:2:13]) +m4_define(libpcreposix_version, [16:2:13]) m4_define(libpcrecpp_version, [0:1:0]) AC_PREREQ(2.57) debian/patches/PCRE6_compatible_API.patch0000644000000000000000000000212612674322720015353 0ustar From: Mark Baker Description: Include old interface to RE::Init() for PCRE 6.x compatibility --- a/pcrecpp.cc +++ b/pcrecpp.cc @@ -80,6 +80,12 @@ // If the user doesn't ask for any options, we just use this one static RE_Options default_options; +// PCRE6.x compatible API +void RE::Init(const char *c_pat, const RE_Options* options) { + const string cxx_pat(c_pat); + Init(cxx_pat, options); +} + void RE::Init(const string& pat, const RE_Options* options) { pattern_ = pat; if (options == NULL) { --- a/pcrecpp.h +++ b/pcrecpp.h @@ -658,6 +658,8 @@ private: void Init(const string& pattern, const RE_Options* options); + // Old version from PCRE 6.x, for compatibility + void Init(const char *pattern, const RE_Options* options); void Cleanup(); // Match against "text", filling in "vec" (up to "vecsize" * 2/3) with --- a/pcretest.c +++ b/pcretest.c @@ -2976,7 +2976,7 @@ { FILE *infile = stdin; const char *version; -int options = 0; +long int options = 0; int study_options = 0; int default_find_match_limit = FALSE; pcre_uint32 default_options = 0; debian/patches/cve-2014-8964.patch0000644000000000000000000000177612674322720013427 0ustar Description: CVE-2014-8964, heap buffer overflow Heap buffer overflow if an assertion with a zero minimum repeat is used as the condition in a conditional group. Origin: upstream http://bugs.exim.org/show_bug.cgi?id=1546 Bug: http://bugs.exim.org/show_bug.cgi?id=1546 Applied-Upstream: Yes, after 8.36 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/pcre_exec.c +++ b/pcre_exec.c @@ -1404,8 +1404,11 @@ condition = TRUE; /* Advance ecode past the assertion to the start of the first branch, - but adjust it so that the general choosing code below works. */ + but adjust it so that the general choosing code below works. If the + assertion has a quantifier that allows zero repeats we must skip over + the BRAZERO. This is a lunatic thing to do, but somebody did! */ + if (*ecode == OP_BRAZERO) ecode++; ecode += GET(ecode, 1); while (*ecode == OP_ALT) ecode += GET(ecode, 1); ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode]; debian/patches/pcreposix.patch0000644000000000000000000000227412674322720013664 0ustar From: Mark Baker Description: Fix PCRE posix interface otherwise libc regexes are used (Bug 22525) Index: pcre-8.30/pcreposix.h =================================================================== --- pcre-8.30.orig/pcreposix.h 2011-12-28 17:57:51.000000000 +0100 +++ pcre-8.30/pcreposix.h 2012-03-23 11:05:02.223026534 +0100 @@ -133,14 +133,19 @@ /* The functions */ -PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int); -PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t, +PCREPOSIX_EXP_DECL int pcreposix_regcomp(regex_t *, const char *, int); +PCREPOSIX_EXP_DECL int pcreposix_regexec(const regex_t *, const char *, size_t, regmatch_t *, int); -PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t); -PCREPOSIX_EXP_DECL void regfree(regex_t *); +PCREPOSIX_EXP_DECL size_t pcreposix_regerror(int, const regex_t *, char *, size_t); +PCREPOSIX_EXP_DECL void pcreposix_regfree(regex_t *); #ifdef __cplusplus } /* extern "C" */ #endif +#define regcomp pcreposix_regcomp +#define regexec pcreposix_regexec +#define regerror pcreposix_regerror +#define regfree pcreposix_regfree + #endif /* End of pcreposix.h */ debian/patches/Fix-buffer-overflow-for-named-recursive-back-referen.patch0000644000000000000000000000370712674322720023705 0ustar Description: CVE-2015-3210: heap buffer overflow in pcre_compile2() / compile_regex() Fix buffer overflow for named recursive back reference when the name is duplicated. Origin: upstream, http://vcs.pcre.org/pcre?view=revision&revision=1558 Bug: https://bugs.exim.org/show_bug.cgi?id=1636 Bug-Debian: https://bugs.debian.org/787433 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: not-yet (8.38) --- a/pcre_compile.c +++ b/pcre_compile.c @@ -7082,14 +7082,26 @@ for (;; ptr++) number. If the name is not found, set the value to 0 for a forward reference. */ + recno = 0; ng = cd->named_groups; for (i = 0; i < cd->names_found; i++, ng++) { if (namelen == ng->length && STRNCMP_UC_UC(name, ng->name, namelen) == 0) - break; + { + open_capitem *oc; + recno = ng->number; + if (is_recurse) break; + for (oc = cd->open_caps; oc != NULL; oc = oc->next) + { + if (oc->number == recno) + { + oc->flag = TRUE; + break; + } + } + } } - recno = (i < cd->names_found)? ng->number : 0; /* Count named back references. */ --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4068,4 +4068,6 @@ backtracking verbs. --/ /((?+1)(\1))/BZ +"(?J)(?'d'(?'d'\g{d}))" + /-- End of testinput2 --/ --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14190,4 +14190,6 @@ Failed: parentheses are too deeply neste End ------------------------------------------------------------------ +"(?J)(?'d'(?'d'\g{d}))" + /-- End of testinput2 --/ debian/patches/Fix-bad-compilation-for-patterns-like-1-1-with-forwa.patch0000644000000000000000000000753312674322720023366 0ustar Description: CVE-2015-2326: heap buffer overflow in pcre_compile2() Fix bad compilation for patterns like /((?+1)(\1))/ with forward reference subroutine and recursive back reference within the same group. Origin: upstream, http://vcs.pcre.org/pcre?view=revision&revision=1529 Bug: http://bugs.exim.org/show_bug.cgi?id=1592 Bug-Debian: https://bugs.debian.org/783285 Forwarded: not-needed Last-Update: 2015-09-10 Applied-Upstream: 8.36 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -8027,6 +8027,7 @@ int length; unsigned int orig_bracount; unsigned int max_bracount; branch_chain bc; +size_t save_hwm_offset; /* If set, call the external function that checks for stack availability. */ @@ -8044,6 +8045,8 @@ bc.current_branch = code; firstchar = reqchar = 0; firstcharflags = reqcharflags = REQ_UNSET; +save_hwm_offset = cd->hwm - cd->start_workspace; + /* Accumulate the length for use in the pre-compile phase. Start with the length of the BRA and KET and any extra bytes that are required at the beginning. We accumulate in a local variable to save frequent testing of @@ -8246,7 +8249,7 @@ for (;;) { *code = OP_END; adjust_recurse(start_bracket, 1 + LINK_SIZE, - (options & PCRE_UTF8) != 0, cd, cd->hwm - cd->start_workspace); + (options & PCRE_UTF8) != 0, cd, save_hwm_offset); memmove(start_bracket + 1 + LINK_SIZE, start_bracket, IN_UCHARS(code - start_bracket)); *start_bracket = OP_ONCE; --- a/testdata/testinput11 +++ b/testdata/testinput11 @@ -134,4 +134,6 @@ is required for these tests. --/ /(((a\2)|(a*)\g<-1>))*a?/B +/((?+1)(\1))/B + /-- End of testinput11 --/ --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -4066,4 +4066,6 @@ backtracking verbs. --/ "((?2){0,1999}())?" +/((?+1)(\1))/BZ + /-- End of testinput2 --/ --- a/testdata/testoutput11-16 +++ b/testdata/testoutput11-16 @@ -733,4 +733,19 @@ Memory allocation (code space): 14 41 End ------------------------------------------------------------------ +/((?+1)(\1))/B +------------------------------------------------------------------ + 0 20 Bra + 2 16 Once + 4 12 CBra 1 + 7 9 Recurse + 9 5 CBra 2 + 12 \1 + 14 5 Ket + 16 12 Ket + 18 16 Ket + 20 20 Ket + 22 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput11-32 +++ b/testdata/testoutput11-32 @@ -733,4 +733,19 @@ Memory allocation (code space): 28 41 End ------------------------------------------------------------------ +/((?+1)(\1))/B +------------------------------------------------------------------ + 0 20 Bra + 2 16 Once + 4 12 CBra 1 + 7 9 Recurse + 9 5 CBra 2 + 12 \1 + 14 5 Ket + 16 12 Ket + 18 16 Ket + 20 20 Ket + 22 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput11-8 +++ b/testdata/testoutput11-8 @@ -733,4 +733,19 @@ Memory allocation (code space): 10 60 End ------------------------------------------------------------------ +/((?+1)(\1))/B +------------------------------------------------------------------ + 0 31 Bra + 3 25 Once + 6 19 CBra 1 + 11 14 Recurse + 14 8 CBra 2 + 19 \1 + 22 8 Ket + 25 19 Ket + 28 25 Ket + 31 31 Ket + 34 End +------------------------------------------------------------------ + /-- End of testinput11 --/ --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -14175,4 +14175,19 @@ Failed: parentheses are too deeply neste "((?2){0,1999}())?" +/((?+1)(\1))/BZ +------------------------------------------------------------------ + Bra + Once + CBra 1 + Recurse + CBra 2 + \1 + Ket + Ket + Ket + Ket + End +------------------------------------------------------------------ + /-- End of testinput2 --/ debian/patches/Fix-silly-quantifier-size-check.patch0000644000000000000000000000556112674322720017722 0ustar From: Philip Hazel Date: Mon, 21 Apr 2014 16:11:50 +0000 Subject: Fix silly quantifier size check The tests for quantifiers being too big (greater than 65535) were being applied after reading the number, and stupidly assuming that integer overflow would give a negative number. The tests are now applied as the numbers are read. Bug: http://bugs.exim.org/show_bug.cgi?id=1463 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=751828 Origin: upstream, part of http://vcs.pcre.org/viewvc?view=revision&sortby=date&revision=1472 Applied-upstream: 8.36 --- pcre_compile.c | 35 ++++++++++++++++------------------- testdata/testoutput2 | 6 +++--- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/pcre_compile.c b/pcre_compile.c index 8a5b723..ae0027b 100644 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -1583,30 +1583,30 @@ read_repeat_counts(const pcre_uchar *p, int *minp, int *maxp, int *errorcodeptr) int min = 0; int max = -1; -/* Read the minimum value and do a paranoid check: a negative value indicates -an integer overflow. */ - -while (IS_DIGIT(*p)) min = min * 10 + (int)(*p++ - CHAR_0); -if (min < 0 || min > 65535) +while (IS_DIGIT(*p)) { - *errorcodeptr = ERR5; - return p; - } - -/* Read the maximum value if there is one, and again do a paranoid on its size. -Also, max must not be less than min. */ + min = min * 10 + (int)(*p++ - CHAR_0); + if (min > 65535) + { + *errorcodeptr = ERR5; + return p; + } + } if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else { if (*(++p) != CHAR_RIGHT_CURLY_BRACKET) { max = 0; - while(IS_DIGIT(*p)) max = max * 10 + (int)(*p++ - CHAR_0); - if (max < 0 || max > 65535) + while(IS_DIGIT(*p)) { - *errorcodeptr = ERR5; - return p; - } + max = max * 10 + (int)(*p++ - CHAR_0); + if (max > 65535) + { + *errorcodeptr = ERR5; + return p; + } + } if (max < min) { *errorcodeptr = ERR4; @@ -1615,9 +1615,6 @@ if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else } } -/* Fill in the required variables, and pass back the pointer to the terminating -'}'. */ - *minp = min; *maxp = max; return p; diff --git a/testdata/testoutput2 b/testdata/testoutput2 index b6da7df..cfb446e 100644 --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -5821,13 +5821,13 @@ No match No match /a{11111111111111111111}/I -Failed: number too big in {} quantifier at offset 22 +Failed: number too big in {} quantifier at offset 8 /(){64294967295}/I -Failed: number too big in {} quantifier at offset 14 +Failed: number too big in {} quantifier at offset 9 /(){2,4294967295}/I -Failed: number too big in {} quantifier at offset 15 +Failed: number too big in {} quantifier at offset 11 "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I Capturing subpattern count = 1 debian/patches/pcre_info.patch0000644000000000000000000004557012674322720013622 0ustar From: Mark Baker Description: Restore obsolete pcre_info() API for compatiblity Index: pcre3/Makefile.am =================================================================== --- pcre3.orig/Makefile.am 2014-04-04 14:39:50.000000000 +0100 +++ pcre3/Makefile.am 2015-12-22 12:37:59.000000000 +0000 @@ -233,6 +233,7 @@ pcre_fullinfo.c \ pcre_get.c \ pcre_globals.c \ + pcre_info.c \ pcre_internal.h \ pcre_jit_compile.c \ pcre_maketables.c \ @@ -647,7 +648,7 @@ # nice DLL for Windows use". (It is used by the pcre.dll target.) DLL_OBJS= pcre_byte_order.o pcre_compile.o pcre_config.o \ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \ - pcre_globals.o pcre_jit_compile.o pcre_maketables.o \ + pcre_globals.o pcre_info.o pcre_jit_compile.o pcre_maketables.o \ pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \ pcre_study.o pcre_tables.o pcre_ucd.o \ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \ Index: pcre3/Makefile.in =================================================================== --- pcre3.orig/Makefile.in 2015-11-23 12:37:21.000000000 +0000 +++ pcre3/Makefile.in 2015-12-22 12:37:59.000000000 +0000 @@ -218,11 +218,11 @@ libpcre_la_DEPENDENCIES = am__libpcre_la_SOURCES_DIST = pcre_byte_order.c pcre_compile.c \ pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c \ - pcre_get.c pcre_globals.c pcre_internal.h pcre_jit_compile.c \ - pcre_maketables.c pcre_newline.c pcre_ord2utf8.c \ - pcre_refcount.c pcre_string_utils.c pcre_study.c pcre_tables.c \ - pcre_ucd.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c \ - ucp.h + pcre_get.c pcre_globals.c pcre_info.c pcre_internal.h \ + pcre_jit_compile.c pcre_maketables.c pcre_newline.c \ + pcre_ord2utf8.c pcre_refcount.c pcre_string_utils.c \ + pcre_study.c pcre_tables.c pcre_ucd.c pcre_valid_utf8.c \ + pcre_version.c pcre_xclass.c ucp.h @WITH_PCRE8_TRUE@am_libpcre_la_OBJECTS = \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_byte_order.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_compile.lo \ @@ -232,6 +232,7 @@ @WITH_PCRE8_TRUE@ libpcre_la-pcre_fullinfo.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_get.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_globals.lo \ +@WITH_PCRE8_TRUE@ libpcre_la-pcre_info.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_jit_compile.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_maketables.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_newline.lo \ @@ -251,7 +252,7 @@ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = +am__v_lt_1 = libpcre_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre_la_CFLAGS) \ $(CFLAGS) $(libpcre_la_LDFLAGS) $(LDFLAGS) -o $@ @@ -449,11 +450,11 @@ AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -467,7 +468,7 @@ AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -475,7 +476,7 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ @@ -485,7 +486,7 @@ AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ @@ -493,7 +494,7 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_1 = SOURCES = $(libpcre_la_SOURCES) $(nodist_libpcre_la_SOURCES) \ $(libpcre16_la_SOURCES) $(nodist_libpcre16_la_SOURCES) \ $(libpcre32_la_SOURCES) $(nodist_libpcre32_la_SOURCES) \ @@ -832,9 +833,6 @@ PCRE_MINOR = @PCRE_MINOR@ PCRE_PRERELEASE = @PCRE_PRERELEASE@ PCRE_STATIC_CFLAG = @PCRE_STATIC_CFLAG@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -844,8 +842,6 @@ SHELL = @SHELL@ SHTOOL = @SHTOOL@ STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ @@ -988,7 +984,7 @@ # The Libtool libraries to install. We'll add to this later. lib_LTLIBRARIES = $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_20) $(am__append_22) -check_SCRIPTS = +check_SCRIPTS = dist_noinst_SCRIPTS = RunTest $(am__append_39) # Additional files to delete on 'make clean' and 'make maintainer-clean'. @@ -1093,6 +1089,7 @@ @WITH_PCRE8_TRUE@ pcre_fullinfo.c \ @WITH_PCRE8_TRUE@ pcre_get.c \ @WITH_PCRE8_TRUE@ pcre_globals.c \ +@WITH_PCRE8_TRUE@ pcre_info.c \ @WITH_PCRE8_TRUE@ pcre_internal.h \ @WITH_PCRE8_TRUE@ pcre_jit_compile.c \ @WITH_PCRE8_TRUE@ pcre_maketables.c \ @@ -1110,7 +1107,7 @@ @WITH_PCRE8_TRUE@libpcre_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ @WITH_PCRE8_TRUE@ $(am__append_7) $(am__append_10) -@WITH_PCRE8_TRUE@libpcre_la_LIBADD = +@WITH_PCRE8_TRUE@libpcre_la_LIBADD = @WITH_PCRE8_TRUE@nodist_libpcre_la_SOURCES = \ @WITH_PCRE8_TRUE@ pcre_chartables.c @@ -1141,7 +1138,7 @@ @WITH_PCRE16_TRUE@libpcre16_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE16_TRUE@ $(AM_CFLAGS) $(am__append_8) \ @WITH_PCRE16_TRUE@ $(am__append_11) -@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = +@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = @WITH_PCRE16_TRUE@nodist_libpcre16_la_SOURCES = \ @WITH_PCRE16_TRUE@ pcre_chartables.c @@ -1172,7 +1169,7 @@ @WITH_PCRE32_TRUE@libpcre32_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE32_TRUE@ $(AM_CFLAGS) $(am__append_9) \ @WITH_PCRE32_TRUE@ $(am__append_12) -@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = +@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = @WITH_PCRE32_TRUE@nodist_libpcre32_la_SOURCES = \ @WITH_PCRE32_TRUE@ pcre_chartables.c @@ -1227,7 +1224,7 @@ # nice DLL for Windows use". (It is used by the pcre.dll target.) DLL_OBJS = pcre_byte_order.o pcre_compile.o pcre_config.o \ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \ - pcre_globals.o pcre_jit_compile.o pcre_maketables.o \ + pcre_globals.o pcre_info.o pcre_jit_compile.o pcre_maketables.o \ pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \ pcre_study.o pcre_tables.o pcre_ucd.o \ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \ @@ -1313,8 +1310,8 @@ @WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION) @WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info @WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage -@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = -@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = @WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V)) @WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY)) @WITH_GCOV_TRUE@coverage_quiet_0 = --quiet @@ -1364,7 +1361,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) +$(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -1425,19 +1422,19 @@ rm -f $${locs}; \ } -libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) +libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre_la_LINK) $(am_libpcre_la_rpath) $(libpcre_la_OBJECTS) $(libpcre_la_LIBADD) $(LIBS) -libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) +libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre16_la_LINK) $(am_libpcre16_la_rpath) $(libpcre16_la_OBJECTS) $(libpcre16_la_LIBADD) $(LIBS) -libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) +libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre32_la_LINK) $(am_libpcre32_la_rpath) $(libpcre32_la_OBJECTS) $(libpcre32_la_LIBADD) $(LIBS) -libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) +libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) $(AM_V_CXXLD)$(libpcrecpp_la_LINK) $(am_libpcrecpp_la_rpath) $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_LIBADD) $(LIBS) -libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) +libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcreposix_la_LINK) $(am_libpcreposix_la_rpath) $(libpcreposix_la_OBJECTS) $(libpcreposix_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @@ -1498,31 +1495,31 @@ echo " rm -f" $$list; \ rm -f $$list -dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) +dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) @rm -f dftables$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dftables_OBJECTS) $(dftables_LDADD) $(LIBS) -pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) +pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) @rm -f pcre_jit_test$(EXEEXT) $(AM_V_CCLD)$(pcre_jit_test_LINK) $(pcre_jit_test_OBJECTS) $(pcre_jit_test_LDADD) $(LIBS) -pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) +pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) @rm -f pcre_scanner_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_scanner_unittest_LINK) $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_LDADD) $(LIBS) -pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) +pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) @rm -f pcre_stringpiece_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_stringpiece_unittest_LINK) $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_LDADD) $(LIBS) -pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) +pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) @rm -f pcrecpp_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcrecpp_unittest_LINK) $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_LDADD) $(LIBS) -pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) +pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) @rm -f pcregrep$(EXEEXT) $(AM_V_CCLD)$(pcregrep_LINK) $(pcregrep_OBJECTS) $(pcregrep_LDADD) $(LIBS) -pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) +pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) @rm -f pcretest$(EXEEXT) $(AM_V_CCLD)$(pcretest_LINK) $(pcretest_OBJECTS) $(pcretest_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @@ -1623,6 +1620,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_fullinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_get.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_globals.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_info.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_jit_compile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_maketables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_newline.Plo@am__quote@ @@ -1726,6 +1724,13 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -c -o libpcre_la-pcre_globals.lo `test -f 'pcre_globals.c' || echo '$(srcdir)/'`pcre_globals.c +libpcre_la-pcre_info.lo: pcre_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -MT libpcre_la-pcre_info.lo -MD -MP -MF $(DEPDIR)/libpcre_la-pcre_info.Tpo -c -o libpcre_la-pcre_info.lo `test -f 'pcre_info.c' || echo '$(srcdir)/'`pcre_info.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpcre_la-pcre_info.Tpo $(DEPDIR)/libpcre_la-pcre_info.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pcre_info.c' object='libpcre_la-pcre_info.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -c -o libpcre_la-pcre_info.lo `test -f 'pcre_info.c' || echo '$(srcdir)/'`pcre_info.c + libpcre_la-pcre_jit_compile.lo: pcre_jit_compile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -MT libpcre_la-pcre_jit_compile.lo -MD -MP -MF $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo -c -o libpcre_la-pcre_jit_compile.lo `test -f 'pcre_jit_compile.c' || echo '$(srcdir)/'`pcre_jit_compile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo $(DEPDIR)/libpcre_la-pcre_jit_compile.Plo Index: pcre3/pcre_info.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ pcre3/pcre_info.c 2015-12-22 12:37:59.000000000 +0000 @@ -0,0 +1,90 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel + Copyright (c) 1997-2009 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + + +/* This module contains the external function pcre_info(), which gives some +information about a compiled pattern. However, use of this function is now +deprecated, as it has been superseded by pcre_fullinfo(). */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "pcre_internal.h" + + +/************************************************* +* (Obsolete) Return info about compiled pattern * +*************************************************/ + +/* This is the original "info" function. It picks potentially useful data out +of the private structure, but its interface was too rigid. It remains for +backwards compatibility. The public options are passed back in an int - though +the re->options field has been expanded to a long int, all the public options +at the low end of it, and so even on 16-bit systems this will still be OK. +Therefore, I haven't changed the API for pcre_info(). + +Arguments: + argument_re points to compiled code + optptr where to pass back the options + first_byte where to pass back the first character, + or -1 if multiline and all branches start ^, + or -2 otherwise + +Returns: number of capturing subpatterns + or negative values on error +*/ + +PCRE_EXP_DEFN int PCRE_CALL_CONVENTION +pcre_info(const pcre *argument_re, int *optptr, int *first_byte) +{ +const real_pcre *re = (const real_pcre *)argument_re; +if (re == NULL) return PCRE_ERROR_NULL; +if (re->magic_number != MAGIC_NUMBER) + return PCRE_ERROR_BADMAGIC; + +if (optptr != NULL) *optptr = (int)(re->options & PUBLIC_COMPILE_OPTIONS); +if (first_byte != NULL) + *first_byte = ((re->flags & PCRE_FIRSTSET) != 0)? re->first_char : + ((re->flags & PCRE_STARTLINE) != 0)? -1 : -2; +return re->top_bracket; +} + +/* End of pcre_info.c */ debian/patches/no_jit_x32_powerpcspe.patch0000644000000000000000000000247112674322720016074 0ustar Description: Disable JIT on x32, needs explicit porting to ILP32 amd64, FPU-less PowerPC. Author: Thorsten Glaser , Roland Stigge Index: pcre3/sljit/sljitConfigInternal.h =================================================================== --- pcre3.orig/sljit/sljitConfigInternal.h 2015-07-31 12:00:43.000000000 +0100 +++ pcre3/sljit/sljitConfigInternal.h 2015-12-22 13:30:50.000000000 +0000 @@ -117,7 +117,11 @@ #if defined(__i386__) || defined(__i386) #define SLJIT_CONFIG_X86_32 1 #elif defined(__x86_64__) -#define SLJIT_CONFIG_X86_64 1 +# if defined(__ILP32__) +# define SLJIT_CONFIG_UNSUPPORTED 1 +# else +# define SLJIT_CONFIG_X86_64 1 +# endif #elif defined(__arm__) || defined(__ARM__) #ifdef __thumb2__ #define SLJIT_CONFIG_ARM_THUMB2 1 @@ -131,7 +135,11 @@ #elif defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64) || (defined(_POWER) && defined(__64BIT__)) #define SLJIT_CONFIG_PPC_64 1 #elif defined(__ppc__) || defined(__powerpc__) || defined(_ARCH_PPC) || defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER) -#define SLJIT_CONFIG_PPC_32 1 +# ifndef __NO_FPRS__ +# define SLJIT_CONFIG_PPC_32 1 +# else +# define SLJIT_CONFIG_UNSUPPORTED 1 +# endif #elif defined(__mips__) && !defined(_LP64) #define SLJIT_CONFIG_MIPS_32 1 #elif defined(__mips64) debian/patches/apply-upstream-revision-1631-closes-81590000644000000000000000000001576612674322720017665 0ustar Description: Apply upstream revision 1631 (Closes: #815921) This is an upstream patch to fix workspace overflow for (*ACCEPT) with deeply nested parentheses Author: Matthew Vernon X-Dgit-Generated: 2:8.38-2 50aa7778a6bb8b81a9e03e8744f797362183772e --- --- pcre3-8.38.orig/pcreposix.c +++ pcre3-8.38/pcreposix.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2014 University of Cambridge + Copyright (c) 1997-2016 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -173,7 +173,8 @@ static const int eint[] = { REG_BADPAT, /* group name must start with a non-digit */ /* 85 */ REG_BADPAT, /* parentheses too deeply nested (stack check) */ - REG_BADPAT /* missing digits in \x{} or \o{} */ + REG_BADPAT, /* missing digits in \x{} or \o{} */ + REG_BADPAT /* pattern too complicated */ }; /* Table of texts corresponding to POSIX error codes */ --- pcre3-8.38.orig/pcre_compile.c +++ pcre3-8.38/pcre_compile.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2014 University of Cambridge + Copyright (c) 1997-2016 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -560,6 +560,7 @@ static const char error_texts[] = /* 85 */ "parentheses are too deeply nested (stack check)\0" "digits missing in \\x{} or \\o{}\0" + "regular expression is too complicated\0" ; /* Table to identify digits and hex digits. This is used when compiling @@ -4591,7 +4592,8 @@ for (;; ptr++) if (code > cd->start_workspace + cd->workspace_size - WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */ { - *errorcodeptr = ERR52; + *errorcodeptr = (code >= cd->start_workspace + cd->workspace_size)? + ERR52 : ERR87; goto FAILED; } @@ -6604,8 +6606,21 @@ for (;; ptr++) cd->had_accept = TRUE; for (oc = cd->open_caps; oc != NULL; oc = oc->next) { - *code++ = OP_CLOSE; - PUT2INC(code, 0, oc->number); + if (lengthptr != NULL) + { +#ifdef COMPILE_PCRE8 + *lengthptr += 1 + IMM2_SIZE; +#elif defined COMPILE_PCRE16 + *lengthptr += 2 + IMM2_SIZE; +#elif defined COMPILE_PCRE32 + *lengthptr += 4 + IMM2_SIZE; +#endif + } + else + { + *code++ = OP_CLOSE; + PUT2INC(code, 0, oc->number); + } } setverb = *code++ = (cd->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; --- pcre3-8.38.orig/pcre_internal.h +++ pcre3-8.38/pcre_internal.h @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2014 University of Cambridge + Copyright (c) 1997-2016 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -2289,7 +2289,7 @@ enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69, ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79, - ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT }; + ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERR87, ERRCOUNT }; /* JIT compiling modes. The function list is indexed by them. */ --- pcre3-8.38.orig/testdata/testoutput11-8 +++ pcre3-8.38/testdata/testoutput11-8 @@ -765,4 +765,7 @@ Memory allocation (code space): 10 38 End ------------------------------------------------------------------ +/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ +Failed: missing ) at offset 509 + /-- End of testinput11 --/ --- pcre3-8.38.orig/testdata/testoutput11-16 +++ pcre3-8.38/testdata/testoutput11-16 @@ -765,4 +765,7 @@ Memory allocation (code space): 14 25 End ------------------------------------------------------------------ +/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ +Failed: regular expression is too complicated at offset 490 + /-- End of testinput11 --/ --- pcre3-8.38.orig/testdata/testinput11 +++ pcre3-8.38/testdata/testinput11 @@ -138,4 +138,6 @@ is required for these tests. --/ /.((?2)(?R)\1)()/B +/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ + /-- End of testinput11 --/ --- pcre3-8.38.orig/testdata/testoutput11-32 +++ pcre3-8.38/testdata/testoutput11-32 @@ -765,4 +765,7 @@ Memory allocation (code space): 28 25 End ------------------------------------------------------------------ +/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ +Failed: missing ) at offset 509 + /-- End of testinput11 --/ debian/README.Versioning.libtool0000644000000000000000000000145212674322720013642 0ustar Debian release of PCRE 4.5 had PCRE_LIB_VERSION=13:0:10 PCRE_POSIXLIB_VERSION=13:0:10 which corresponds to latest debian-revision (soname libpcre.so.3, installed as libpcre.so.3.9.0) and followed the instructions about version numbering in the libtool manual: | 3. If the library source code has changed at all since the last | update, then increment REVISION (`C:R:A' becomes `C:r+1:A'). 13:1:10 4. If any interfaces have been added, removed, or changed since the last update, increment CURRENT, and set REVISION to 0. 14:0:10 5. If any interfaces have been added since the last public release, then increment AGE. 14:0:11 6. If any interfaces have been removed since the last public release, then set AGE to 0. n/a Therefore I'm using 14:0:11 for this release of PCRE 5.0 debian/compat0000644000000000000000000000000212674322720010371 0ustar 5 debian/libpcre3-dev.examples0000644000000000000000000000001312674322720013204 0ustar pcredemo.c debian/pcre-config.10000644000000000000000000000326312674322720011455 0ustar .TH PCRE-CONFIG 1 .SH NAME pcre-config \- program to return PCRE configuration .SH SYNOPSIS .B pcre-config .RB [ --prefix ] .RB [ --exec-prefix ] .RB [ --version ] .RB [ --libs ] .RB [ --libs-posix ] .RB [ --cflags ] .RB [ --cflags-posix ] .SH DESCRIPTION \fBpcre-config\fR returns the configuration of the installed PCRE libraries: the options required to compile a program to use them. .SH OPTIONS .TP 10 \fB--prefix\fR Writes the directory prefix used in the PCRE installation for architecture independent files (e.g. \fI/usr\fR) to standard output. .TP \fB--exec-prefix\fR Writes the directory prefix used in the PCRE installation for architecture dependent files (normally the same as \fB--prefix\fR) to standard output. .TP \fB--version\fR Writes the version of PCRE installed to standard output. .TP \fB--libs\fR Writes to standard output the command line options required to link with PCRE (e.g. \fI-lpcre\fR). .TP \fB--libs-posix\fR Writes to standard output the command line options required to link with the PCRE POSIX emulation library (e.g. \fI-lpcreposix -lpcre\fR). .TP \fB--cflags\fR Writes to standard output the command line options required to compile files that use PCRE (this often includes some \fI-I\fR options, but is blank on debian systems). .TP \fB--cflags-posix\fR Writes to standard output the command line options required to compile files that use the PCRE POSIX emulation library (this often includes some -I options, but is blank on debian systems). Suppress printing of filenames when searching multiple files. .TP .SH AUTHOR This manual page was written by Mark Baker , for the Debian GNU/Linux system (but may be used by others). .SH SEE ALSO \fBpcre(3) debian/libpcrecpp0v5.install0000644000000000000000000000004512674322720013240 0ustar debian/tmp/usr/lib/*/libpcrecpp.so.* debian/copyright0000644000000000000000000000531512674322720011132 0ustar This is Debian GNU/Linux's prepackaged version of the PCRE regular expression library and associated pgrep utility. This package was put together by me, Mark Baker from the original sources obtained from ftp.csx.cam.ac.uk:/pub/software/programming/pcre. PCRE LICENCE ------------ PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 7 of PCRE is distributed under the terms of the "BSD" licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. The basic library functions are written in C and are freestanding. Also included in the distribution is a set of C++ wrapper functions. THE BASIC LIBRARY FUNCTIONS --------------------------- Written by: Philip Hazel Email local part: ph10 Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. Copyright (c) 1997-2007 University of Cambridge All rights reserved. THE C++ WRAPPER FUNCTIONS ------------------------- Contributed by: Google Inc. Copyright (c) 2007, Google Inc. All rights reserved. THE "BSD" LICENCE ----------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the name of Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. End debian/pcregrep.install0000644000000000000000000000014112674322720012366 0ustar debian/tmp/usr/bin/pcregrep debian/tmp/usr/share/man/man1/pcregrep.1 debian/zpcregrep /usr/bin/ debian/libpcre3.install0000644000000000000000000000016512674322720012270 0ustar debian/tmp/usr/lib/*/libpcre.so.* debian/tmp/usr/lib/*/libpcreposix.so.* debian/tmp/usr/share/man/man3/pcrepattern.3 debian/pcregrep.files0000644000000000000000000000006012674322720012022 0ustar usr/bin/pcregrep usr/share/man/man1/pcregrep.1 debian/source/0000755000000000000000000000000012674322720010473 5ustar debian/source/format0000644000000000000000000000001412674322720011701 0ustar 3.0 (quilt) debian/source/options0000644000000000000000000000005312674322720012107 0ustar compression = "gzip" compression-level = 9 debian/libpcre3-dev.manpages0000644000000000000000000000002612674322720013165 0ustar debian/pcre-config.1 debian/pcregrep.links0000644000000000000000000000016112674322720012042 0ustar usr/share/doc/libpcre3 usr/share/doc/pcregrep usr/share/man/man1/pcregrep.1.gz usr/share/man/man1/zpcregrep.1.gz