| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| X-SWARE-Spam-Status: | No, hits=-4.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_EG |
| X-Spam-Check-By: | sourceware.org |
| Message-ID: | <4FD4622C.8050809@users.sourceforge.net> |
| Date: | Sun, 10 Jun 2012 04:00:28 -0500 |
| From: | "Yaakov (Cygwin/X)" <yselkowitz AT users DOT sourceforge DOT net> |
| User-Agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| Subject: | regex: incorrect REG_EMPTY |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
--------------010202070000020708040800
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
I encountered an apparent bug in our regex code triggered by one of the
included hostprogs (namely arch/x86/tools/relocs.c) used while
cross-compiling an i386 Linux kernel.
The exact regexp in question is included in the attached STC:
$ gcc -Wall regex-test.c && ./a
./a: empty (sub)expression
$ gcc -DPCRE -Wall regex-test.c -lpcreposix && ./a
Yaakov
--------------010202070000020708040800
Content-Type: text/plain; charset=windows-1252;
name="regex-test.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="regex-test.c"
#ifdef PCRE
#include <pcreposix.h>
#else
#include <regex.h>
#endif
#include <error.h>
int
main(void)
{
regex_t re;
int ret;
char errbuf[128];
/* offending regex pattern from kernel:arch/x86/tools/relocs.c */
const char pattern[] = "^(__init_(begin|end)|"
"__x86_cpu_dev_(start|end)|"
"(__parainstructions|__alt_instructions)(|_end)|"
"(__iommu_table|__apicdrivers|__smp_locks)(|_end)|"
"__(start|end)_pci_.*|"
"__(start|end)_builtin_fw|"
"__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl|_gpl_future)|"
"__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl|_gpl_future)|"
"__(start|stop)___param|"
"__(start|stop)___modver|"
"__(start|stop)___bug_table|"
"__tracedata_(start|end)|"
"__(start|stop)_notes|"
"__end_rodata|"
"__initramfs_start|"
"(jiffies|jiffies_64)|"
"_end)$";
if ((ret = regcomp (&re, pattern, REG_EXTENDED|REG_NOSUB)))
{
regerror(ret, &re, errbuf, sizeof(errbuf));
error(ret, 0, errbuf);
}
return 0;
}
--------------010202070000020708040800
Content-Type: text/plain; charset=us-ascii
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
--------------010202070000020708040800--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |