X-Loop: help-debbugs@HIDDEN Subject: bug#44538: grep -E might exhaust stack space Resent-From: JIang Yuancheng <0599jiangyc@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-grep@HIDDEN Resent-Date: Mon, 09 Nov 2020 17:45:02 +0000 Resent-Message-ID: <handler.44538.B.16049438761472 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 44538 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 44538 <at> debbugs.gnu.org Cc: Kaihang Ji <kaihang@HIDDEN> X-Debbugs-Original-To: bug-grep@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.16049438761472 (code B ref -1); Mon, 09 Nov 2020 17:45:02 +0000 Received: (at submit) by debbugs.gnu.org; 9 Nov 2020 17:44:36 +0000 Received: from localhost ([127.0.0.1]:35528 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1kcBDY-0000Ng-3u for submit <at> debbugs.gnu.org; Mon, 09 Nov 2020 12:44:36 -0500 Received: from lists.gnu.org ([209.51.188.17]:37544) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <0599jiangyc@HIDDEN>) id 1kcB4C-0000AE-UE for submit <at> debbugs.gnu.org; Mon, 09 Nov 2020 12:34:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39604) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <0599jiangyc@HIDDEN>) id 1kcB4C-00023N-Ly for bug-grep@HIDDEN; Mon, 09 Nov 2020 12:34:56 -0500 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:40997) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <0599jiangyc@HIDDEN>) id 1kcB4A-0007PB-H3 for bug-grep@HIDDEN; Mon, 09 Nov 2020 12:34:56 -0500 Received: by mail-pg1-x534.google.com with SMTP id f18so3249162pgi.8 for <bug-grep@HIDDEN>; Mon, 09 Nov 2020 09:34:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:cc:to; bh=QJz3C/vBf1xLbAGh6mlYR+1WfaWxFwArjfu2nEtMnxk=; b=HA2wQPv+sYqWd6CrYx+P5YLBk9fNBRx9naAEE1DkRgnxTiEAq4QmMVjp/yCH8CyetN 8q0p8h99E6/EZIa144FfO7xOdoMAxCoTi0p13Gqz/9iXJcXE8XbrTqaMktKOnnkdW7mx x2YT1alvQlonRJa76Kk4rlWgbTd2rQuD8qMPUBf+iOCwu9qMlGbLGMjHDdgEVKbmCxNF V9hCthKmIq/N5a8QbDFAaMIjGnlwsjDayYXul5S9V0o6vkCfE/04KRbExiBKLeMl5g4s 27YLSU/ITk1HWvfg3SwLUJCdC8TVHi0zd/CBt78qVTBfgzRjQxfXij9g7QnqTdt7G6tk vB7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:cc:to; bh=QJz3C/vBf1xLbAGh6mlYR+1WfaWxFwArjfu2nEtMnxk=; b=q6D4gS1bvS7560WiGdYxbuWaq1yG0pXp4ytydSxta91QOpPg7eDBW+LKqW8IgKWch9 LSQQDn3m4XYb+ujTb2ZbjyizKRvGhiko1JNTOtR64QBICiC695VWcKpLXboJ9n4VF2TD 2RlX3wo+L776G0TWhVgwAtcLjFzSSQseGYDDglMI6VpGk1J4kq9Mac2DzhFn9i3OVQjS 6A98qUqOVXN0Cid1+/A7AjCw7wV2gxiFqpwuUvaKyc7ok9Du1PLmMpVnTOQz5MxRxpVe 9XMX0UA23zhETI52khDnQFftzhUVe0Xf179+3JzNq0b9vKmyVyrb4R9Sv+y0YVEunh6K ojrQ== X-Gm-Message-State: AOAM531PovV4bBCGtaglMHp7xorUiijVf3A7Spods7XRvhKe/KKjHteJ AMRU2VBl+zcqBpqsB3Cb29R3vKs+VwY= X-Google-Smtp-Source: ABdhPJwGON50HxRcf9JwcAz7pE0DsWXqkVW4AVeuID2gHXNwPmXzOcxKaDF5F/u576eKaRP64E+cjw== X-Received: by 2002:a63:fe0f:: with SMTP id p15mr13490811pgh.343.1604943292025; Mon, 09 Nov 2020 09:34:52 -0800 (PST) Received: from [192.168.18.4] ([116.88.183.62]) by smtp.gmail.com with ESMTPSA id s17sm63872pjr.56.2020.11.09.09.34.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Nov 2020 09:34:51 -0800 (PST) From: JIang Yuancheng <0599jiangyc@HIDDEN> Content-Type: multipart/alternative; boundary="Apple-Mail=_42DBBDEF-E628-4CCC-99C3-7CDDC87DCCB8" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\)) Message-Id: <929253AA-9604-4609-A176-652C12E1D593@HIDDEN> Date: Tue, 10 Nov 2020 01:34:47 +0800 X-Mailer: Apple Mail (2.3608.120.23.2.1) Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=0599jiangyc@HIDDEN; helo=mail-pg1-x534.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, FROM_STARTS_WITH_NUMS=0.738, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.8 (/) X-Mailman-Approved-At: Mon, 09 Nov 2020 12:44:34 -0500 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.8 (-) --Apple-Mail=_42DBBDEF-E628-4CCC-99C3-7CDDC87DCCB8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi, grep -E =E2=80=9C.*{10,}{10,}{10,}{10,}{10,}=E2=80=9D can exhaust stack = space then stack overflow comes out. (Tested on latest version 3.6) jyc@ubuntu18:~/GREP/grep-3.6/src$ ./grep -E = ".*{10,}{10,}{10,}{10,}{10,}"=20 grep: stack overflow Gdb information: = [----------------------------------registers------------------------------= -----] RAX: 0x0=20 RBX: 0x20 (' ') RCX: 0x555555799010 --> 0x705070701010700=20 RDX: 0x0=20 RSI: 0x8=20 RDI: 0x7ffff7b5dc40 --> 0x0=20 RBP: 0xffffffffffffffb0=20 RSP: 0x7fffff7fefa0=20 RIP: 0x7ffff780637e (<_int_malloc+62>: mov QWORD PTR [rsp+0x8],rsi) R8 : 0x68b1d=20 R9 : 0x0=20 R10: 0x555555799010 --> 0x705070701010700=20 R11: 0x0=20 R12: 0x7ffff4d228f8 --> 0x0=20 R13: 0x3458e8=20 R14: 0x0=20 R15: 0x55555579e460 --> 0x7ffff545e010 --> 0x2e ('.') EFLAGS: 0x10202 (carry parity adjust zero sign trap INTERRUPT direction = overflow) = [-------------------------------------code--------------------------------= -----] 0x7ffff7806373 <_int_malloc+51>: test al,al 0x7ffff7806375 <_int_malloc+53>: jne 0x7ffff7806a58 = <_int_malloc+1816> 0x7ffff780637b <_int_malloc+59>: test rdi,rdi =3D> 0x7ffff780637e <_int_malloc+62>: mov QWORD PTR [rsp+0x8],rsi 0x7ffff7806383 <_int_malloc+67>: mov r14,rdi 0x7ffff7806386 <_int_malloc+70>: je 0x7ffff7806a38 = <_int_malloc+1784> 0x7ffff780638c <_int_malloc+76>: mov r15d,ebx 0x7ffff780638f <_int_malloc+79>: shr r15d,0x4 = [------------------------------------stack--------------------------------= -----] Invalid $SP address: 0x7fffff7fefa0 = [-------------------------------------------------------------------------= -----] Legend: code, data, rodata, value Stopped reason: SIGSEGV 0x00007ffff780637e in _int_malloc (av=3Dav@entry=3D0x7ffff7b5dc40 = <main_arena>, bytes=3Dbytes@entry=3D0x8) at malloc.c:3557 3557 malloc.c: No such file or directory. ASAN: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D12861=3D=3DERROR: AddressSanitizer: stack-overflow on address = 0x7fffe9c8afc8 (pc 0x7f9f6989dd2e bp 0x7fffe9c8b060 sp 0x7fffe9c8afd0 = T0) #0 0x7f9f6989dd2d (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x27d2d) #1 0x7f9f69954b0a in __interceptor_malloc = (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb0a) #2 0x555aa36928ec in re_node_set_alloc = /home/jyc/GREP/grep-3.6/lib/regex_internal.c:973 #3 0x555aa369f8cf in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1700 #4 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 #5 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 #6 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 =E2=80=A6 #248 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 #249 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 #250 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737 SUMMARY: AddressSanitizer: stack-overflow = (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x27d2d)=20 =3D=3D12861=3D=3DABORTING Thanks, Yuancheng= --Apple-Mail=_42DBBDEF-E628-4CCC-99C3-7CDDC87DCCB8 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><span= style=3D"font-size: 14px;" class=3D"">Hi,</span><div class=3D""><span = style=3D"font-size: 14px;" class=3D""><br class=3D""></span></div><div = class=3D""><span style=3D"font-size: 14px;" class=3D""><b class=3D"">grep = -E =E2=80=9C.*{10,}{10,}{10,}{10,}{10,}=E2=80=9D can exhaust stack space = then stack overflow comes out. (Tested on latest version = 3.6)</b></span></div><div class=3D""><span style=3D"font-size: 14px;" = class=3D""><br class=3D""></span></div><div class=3D""><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; = font-family: Menlo; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D""><b class=3D"">jyc@ubuntu18</b></span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">:</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #400bd9" class=3D""><b = class=3D"">~/GREP/grep-3.6/src</b></span><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">$ = ./grep -E ".*{10,}{10,}{10,}{10,}{10,}" </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; = font-family: Menlo; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = font-size: 14px;" class=3D"">grep: stack overflow</span></div></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; = font-family: Menlo; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = font-size: 14px;" class=3D""><br class=3D""></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; = font-family: Menlo; background-color: rgb(255, 255, 255);" = class=3D""><span style=3D"font-size: 14px;" class=3D""><b class=3D"">Gdb = information:</b></span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; font-family: Menlo; background-color: = rgb(255, 255, 255);" class=3D""><span style=3D"font-size: 14px;" = class=3D""><br class=3D""></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal; font-family: Menlo; = background-color: rgb(255, 255, 255);" class=3D""><div style=3D"margin: = 0px; font-stretch: normal; line-height: normal; color: rgb(64, 11, = 217);" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; font-size: 14px;" = class=3D"">[----------------------------------registers-------------------= ----------------]</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span style=3D"font-size: = 14px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #2fb41d" class=3D"">RAX</span><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">: = 0x0 </span></span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span style=3D"font-size: = 14px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #2fb41d" class=3D"">RBX</span><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">: 0x20 = (' ')</span></span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span style=3D"font-size: = 14px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #2fb41d" class=3D"">RCX</span><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">: = </span><span style=3D"font-variant-ligatures: no-common-ligatures; = color: #400bd9" class=3D"">0x555555799010</span><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D""> --> = 0x705070701010700 </span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">RDX</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x0 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">RSI</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x8 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; color: = rgb(64, 11, 217);" class=3D""><span style=3D"font-size: 14px;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = color: #2fb41d" class=3D"">RDI</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D"">: </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">0x7ffff7b5dc40</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> --> 0x0 </span></span></div><div style=3D"margin: = 0px; font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">RBP</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: = 0xffffffffffffffb0 </span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">RSP</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: = 0x7fffff7fefa0 </span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">RIP</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #b42419" = class=3D"">0x7ffff780637e</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""> (<_int_malloc+62>:<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>mov = QWORD PTR [rsp+0x8],rsi)</span></span></div><div style=3D"margin: = 0px; font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R8 </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x68b1d </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R9 </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x0 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R10</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #400bd9" = class=3D"">0x555555799010</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""> --> = 0x705070701010700 </span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R11</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x0 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; color: = rgb(64, 11, 217);" class=3D""><span style=3D"font-size: 14px;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = color: #2fb41d" class=3D"">R12</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D"">: </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">0x7ffff4d228f8</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> --> 0x0 </span></span></div><div style=3D"margin: = 0px; font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R13</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x3458e8 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">R14</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">: 0x0 </span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; color: = rgb(64, 11, 217);" class=3D""><span style=3D"font-size: 14px;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = color: #2fb41d" class=3D"">R15</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D"">: </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">0x55555579e460</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> --> </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">0x7ffff545e010</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> --> 0x2e ('.')</span></span></div><div style=3D"margin: = 0px; font-stretch: normal; line-height: normal; color: rgb(47, 180, = 29);" class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">EFLAGS</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D"">: 0x10202 (</span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">carry</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">parity</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">adjust</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">zero</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">sign</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">trap</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #000000" class=3D""> </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #b42419" = class=3D""><b class=3D"">INTERRUPT</b></span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">direction</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> </span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">overflow</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D"">)</span></span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; color: rgb(64, 11, 217);" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D"">[-------------------------------------code---------------------= ----------------]</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span style=3D"font-size: = 14px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""> 0x7ffff7806373 = <_int_malloc+51>:</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #e1a7a3" class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>test = al,al</span></span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; color: rgb(217, 217, 164);" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> 0x7ffff7806375 = <_int_malloc+53>:</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>jne 0x7ffff7806a58 = <_int_malloc+1816></span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> 0x7ffff780637b = <_int_malloc+59>:</span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #e1a7a3" class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>test = rdi,rdi</span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">=3D> = 0x7ffff780637e <_int_malloc+62>:</span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D""><b class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>mov QWORD PTR = [rsp+0x8],rsi</b></span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D""> 0x7ffff7806383 <_int_malloc+67>:<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>mov = r14,rdi</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; color: rgb(159, 160, 28);" class=3D""><span = style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #000000" = class=3D""> 0x7ffff7806386 = <_int_malloc+70>:</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>je 0x7ffff7806a38 = <_int_malloc+1784></span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D""> 0x7ffff780638c <_int_malloc+76>:<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>mov = r15d,ebx</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D""> 0x7ffff780638f <_int_malloc+79>:<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>shr = r15d,0x4</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; color: rgb(64, 11, 217);" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D"">[------------------------------------stack---------------------= ----------------]</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal; color: rgb(180, 36, 25);" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D"">Invalid $SP address: 0x7fffff7fefa0</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; color: = rgb(64, 11, 217);" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; font-size: 14px;" = class=3D"">[--------------------------------------------------------------= ----------------]</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span style=3D"font-size: = 14px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">Legend: </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #b42419" = class=3D"">code</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">, </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #400bd9" = class=3D"">data</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">, </span><span = style=3D"font-variant-ligatures: no-common-ligatures; color: #2fb41d" = class=3D"">rodata</span><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D"">, value</span></span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D"">Stopped = reason: </span><span style=3D"font-variant-ligatures: = no-common-ligatures; color: #b42419" = class=3D"">SIGSEGV</span></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D"">0x00007ffff780637e in _int_malloc (av=3Dav@entry=3D0x7ffff7b5dc= 40 <main_arena>, bytes=3Dbytes@entry=3D0x8)</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures; = font-size: 14px;" class=3D""> at = malloc.c:3557</span></div><div style=3D"margin: 0px; font-stretch: = normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D"">3557<span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>malloc.c: No such file or directory.</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-size: 14px;" class=3D""><br = class=3D""></span></div><div style=3D"margin: 0px; font-stretch: normal; = line-height: normal;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures; font-size: 14px;" class=3D""><b = class=3D"">ASAN:</b></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D""><br class=3D""></span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures; font-size: 14px;" = class=3D""><div style=3D"margin: 0px; font-stretch: normal; line-height: = normal;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</span></div><div= style=3D"margin: 0px; font-stretch: normal; line-height: normal; color: = rgb(180, 36, 25);" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""><b class=3D"">=3D=3D12861=3D=3DERROR: = AddressSanitizer: stack-overflow on address 0x7fffe9c8afc8 (pc = 0x7f9f6989dd2e bp 0x7fffe9c8b060 sp 0x7fffe9c8afd0 = T0)</b></span></div><div style=3D"margin: 0px; font-stretch: normal; = line-height: normal;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""> #0 0x7f9f6989dd2d = (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x27d2d)</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #1 0x7f9f69954b0a in __interceptor_malloc = (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb0a)</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #2 0x555aa36928ec in re_node_set_alloc = /home/jyc/GREP/grep-3.6/lib/regex_internal.c:973</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #3 0x555aa369f8cf in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1700</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #4 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #5 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #6 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">=E2=80=A6</span></div><div style=3D"margin: 0px; = font-stretch: normal; line-height: normal;" class=3D""><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #248 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #249 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D""> #250 0x555aa369fe25 in calc_eclosure_iter = /home/jyc/GREP/grep-3.6/lib/regcomp.c:1737</span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal; = min-height: 24px;" class=3D""><span style=3D"font-variant-ligatures: = no-common-ligatures" class=3D""></span><br class=3D""></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">SUMMARY: AddressSanitizer: stack-overflow = (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x27d2d) </span></div><div = style=3D"margin: 0px; font-stretch: normal; line-height: normal;" = class=3D""><span style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">=3D=3D12861=3D=3DABORTING</span></div><div class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures" = class=3D"">Thanks,</span></div><div class=3D""><span = style=3D"font-variant-ligatures: no-common-ligatures;" = class=3D"">Yuancheng</span></div></div></span></div></div></body></html>= --Apple-Mail=_42DBBDEF-E628-4CCC-99C3-7CDDC87DCCB8--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: JIang Yuancheng <0599jiangyc@HIDDEN> Subject: bug#44538: Acknowledgement (grep -E might exhaust stack space) Message-ID: <handler.44538.B.16049438761472.ack <at> debbugs.gnu.org> References: <929253AA-9604-4609-A176-652C12E1D593@HIDDEN> X-Gnu-PR-Message: ack 44538 X-Gnu-PR-Package: grep Reply-To: 44538 <at> debbugs.gnu.org Date: Mon, 09 Nov 2020 17:45:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-grep@HIDDEN If you wish to submit further information on this problem, please send it to 44538 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 44538: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D44538 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#44538: grep -E might exhaust stack space Resent-From: Paul Eggert <eggert@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-grep@HIDDEN Resent-Date: Sat, 28 Aug 2021 01:27:02 +0000 Resent-Message-ID: <handler.44538.B44538.163011396329296 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 44538 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: JIang Yuancheng <0599jiangyc@HIDDEN> Cc: 44538 <at> debbugs.gnu.org, Kaihang Ji <kaihang@HIDDEN> Received: via spool by 44538-submit <at> debbugs.gnu.org id=B44538.163011396329296 (code B ref 44538); Sat, 28 Aug 2021 01:27:02 +0000 Received: (at 44538) by debbugs.gnu.org; 28 Aug 2021 01:26:03 +0000 Received: from localhost ([127.0.0.1]:53192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1mJn6g-0007cR-M3 for submit <at> debbugs.gnu.org; Fri, 27 Aug 2021 21:26:03 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:52464) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eggert@HIDDEN>) id 1mJn6a-0007bq-40 for 44538 <at> debbugs.gnu.org; Fri, 27 Aug 2021 21:26:00 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 2AB5716005E; Fri, 27 Aug 2021 18:25:50 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Ghh-a8vjulC0; Fri, 27 Aug 2021 18:25:45 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 767BF1600E5; Fri, 27 Aug 2021 18:25:45 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id gFdfl_sEK_gn; Fri, 27 Aug 2021 18:25:45 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 4B1EE16005E; Fri, 27 Aug 2021 18:25:45 -0700 (PDT) References: <929253AA-9604-4609-A176-652C12E1D593@HIDDEN> From: Paul Eggert <eggert@HIDDEN> Organization: UCLA Computer Science Department Message-ID: <2eafa490-ac23-edd4-76d5-94d3d82591da@HIDDEN> Date: Fri, 27 Aug 2021 18:25:44 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <929253AA-9604-4609-A176-652C12E1D593@HIDDEN> Content-Type: multipart/mixed; boundary="------------E9BE978F2CB023162FD1A6AE" Content-Language: en-US X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.4 (---) This is a multi-part message in MIME format. --------------E9BE978F2CB023162FD1A6AE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable On 11/9/20 9:34 AM, JIang Yuancheng wrote: > grep -E =E2=80=9C.*{10,}{10,}{10,}{10,}{10,}=E2=80=9D can exhaust stack= space then stack overflow comes out. (Tested on latest version 3.6) This is a longstanding issue with the regex matcher. I installed the=20 attached patch to document the issue better. Fortunately, the problem is=20 mostly limited to contrived examples. --------------E9BE978F2CB023162FD1A6AE Content-Type: text/x-patch; charset=UTF-8; name="0001-doc-document-interval-expression-limitations.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-doc-document-interval-expression-limitations.patch" From f0d97db2a2104c5fd558178713054f3f267623b2 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@HIDDEN> Date: Fri, 27 Aug 2021 18:20:58 -0700 Subject: [PATCH] doc: document interval expression limitations * doc/grep.texi (Basic vs Extended, Performance): Document limitations of interval expressions (Bug#44538). --- doc/grep.texi | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/grep.texi b/doc/grep.texi index b92ecb7..e5b9fd8 100644 --- a/doc/grep.texi +++ b/doc/grep.texi @@ -1526,7 +1526,7 @@ before an interval expression's closing @samp{@}}, and an unmatched @code{\)} is invalid. Portable scripts should avoid the following constructs, as -POSIX says they produce undefined results: +POSIX says they produce unspecified results: @itemize @bullet @item @@ -1541,6 +1541,8 @@ Empty alternatives (as in, e.g, @samp{a|}). Repetition operators that immediately follow empty expressions, unescaped @samp{$}, or other repetition operators. @item +Interval expressions containing repetition counts greater than 255. +@item A backslash escaping an ordinary character (e.g., @samp{\S}), unless it is a back-reference. @item @@ -1965,6 +1967,17 @@ bracket expressions like @samp{[a-z]} and @samp{[[=a=]b]}, can be surprisingly inefficient due to difficulties in fast portable access to concepts like multi-character collating elements. +@cindex interval expressions +Interval expressions may be implemented internally via repetition. +For example, @samp{^(a|bc)@{2,4@}$} might be implemented as +@samp{^(a|bc)(a|bc)((a|bc)(a|bc)?)?$}. A large repetition count may +exhaust memory or greatly slow matching. Even small counts can cause +problems if cascaded; for example, @samp{grep -E +".*@{10,@}@{10,@}@{10,@}@{10,@}@{10,@}"} is likely to overflow a +stack. Fortunately, regular expressions like these are typically +artificial, and cascaded repetitions do not conform to POSIX so cannot +be used in portable programs anyway. + @cindex back-references A back-reference such as @samp{\1} can hurt performance significantly in some cases, since back-references cannot in general be implemented -- 2.30.2 --------------E9BE978F2CB023162FD1A6AE--
Received: (at control) by debbugs.gnu.org; 28 Aug 2021 01:28:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 27 21:28:28 2021 Received: from localhost ([127.0.0.1]:53196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1mJn92-0007fs-Ew for submit <at> debbugs.gnu.org; Fri, 27 Aug 2021 21:28:28 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:52642) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eggert@HIDDEN>) id 1mJn90-0007fg-Sd for control <at> debbugs.gnu.org; Fri, 27 Aug 2021 21:28:27 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 94EC716005E for <control <at> debbugs.gnu.org>; Fri, 27 Aug 2021 18:28:21 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id mdveto5qgfgx for <control <at> debbugs.gnu.org>; Fri, 27 Aug 2021 18:28:21 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 05E2A1600E5 for <control <at> debbugs.gnu.org>; Fri, 27 Aug 2021 18:28:21 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6mbG4RTCnvGo for <control <at> debbugs.gnu.org>; Fri, 27 Aug 2021 18:28:20 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id DB75116005E for <control <at> debbugs.gnu.org>; Fri, 27 Aug 2021 18:28:20 -0700 (PDT) To: control <at> debbugs.gnu.org From: Paul Eggert <eggert@HIDDEN> Subject: 44538 is wishlist Organization: UCLA Computer Science Department Message-ID: <cfcb0f68-6f33-deb7-dcdd-7c2106578305@HIDDEN> Date: Fri, 27 Aug 2021 18:28:20 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) severity 44538 wishlist
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.