From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#65726: 29.1.50; Crash in regexp engine Date: Thu, 21 Sep 2023 19:23:45 +0200 Message-ID: <5882311F-DEAE-4220-B241-86367BF07E78@gmail.com> References: <8e1b4e50-0430-3eb3-e486-60def1e4821f@gmx.at> <83fs3u5e7u.fsf@gnu.org> <835y4q5apw.fsf@gnu.org> <776370AB-662F-4C0A-95BF-97DEA4F18F54@gmail.com> <3A0AC9E2-A420-47B6-870A-69C53FCAEF71@gmail.com> <65105BCA-1884-4673-A8F8-03E3C7ABAAEA@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5862"; mail-complaints-to="usenet@ciao.gmane.io" Cc: martin rudalics , Eli Zaretskii , 65726@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Sep 21 19:25:16 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qjNQP-0001BZ-C3 for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 21 Sep 2023 19:25:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjNQ5-0005Pl-RK; Thu, 21 Sep 2023 13:24:53 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjNQ4-0005PT-Bb for bug-gnu-emacs@gnu.org; Thu, 21 Sep 2023 13:24:52 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qjNQ4-0004zj-3Y for bug-gnu-emacs@gnu.org; Thu, 21 Sep 2023 13:24:52 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qjNQD-0003M1-Q9 for bug-gnu-emacs@gnu.org; Thu, 21 Sep 2023 13:25:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 21 Sep 2023 17:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65726 X-GNU-PR-Package: emacs Original-Received: via spool by 65726-submit@debbugs.gnu.org id=B65726.169531704812808 (code B ref 65726); Thu, 21 Sep 2023 17:25:01 +0000 Original-Received: (at 65726) by debbugs.gnu.org; 21 Sep 2023 17:24:08 +0000 Original-Received: from localhost ([127.0.0.1]:34757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qjNPM-0003KW-Bn for submit@debbugs.gnu.org; Thu, 21 Sep 2023 13:24:08 -0400 Original-Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:56442) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qjNPH-0003Jv-Jn for 65726@debbugs.gnu.org; Thu, 21 Sep 2023 13:24:07 -0400 Original-Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-5041335fb9cso2111583e87.0 for <65726@debbugs.gnu.org>; Thu, 21 Sep 2023 10:23:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695317027; x=1695921827; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=55NxjFuUNSJw4VXqv9XkWlKx2pK2JezT6NDOKT5tobA=; b=Omc7uvqefRg/SSKGbz4P2X5DGn45im4aZBpU1Wh3K9ykVCOaGz2Vzh/rWYY4w5wirU aAsFGtQ2VK1S4ZPd5JtBMsGuZKmrXKCscZ+aFpbofRqV719CpCLBPaHWmTxS0td3Ev4t 9umkRLEIv0mjSBeXdQ+f/zwiKkg2cr/Hip8vzTe/tIvOhQePR7uak139mJig1EGeM8Ud ye/DGkkzyPOJOa5ksTrmN9qLVoimrSKugowqacupVlOIUlazlVcgWTiqHVgHpdUo892v JgqlcmGRV3wzWMw8YI9HX01ETtPNQt3TVcZZkYbtajMqY1UiNtcV3udDNrY/oPuMzz0B ou5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695317027; x=1695921827; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=55NxjFuUNSJw4VXqv9XkWlKx2pK2JezT6NDOKT5tobA=; b=LpdcqCzw4gOmUWUfsEGlLtFKEOLhGVndlmg5ysS4z2cEt25WsLEfObjwFquEfdtJct iO8OLP3/Hkq7dAxDl5VEur64vxkss4ymN28sh7EI+v/+PaGnZ8J+2JlIG6TcHp/XWXhV n4Kecjk1+d18ckft330AyazB+B6nCiUVQMWad0ubiwChhIxK3/NM/3uaGJD0D55cCOAQ vODL6WScV/rXdIW+CF/V5Ht6M9SjaGDJGGDA4NSIl2WLDZAQ7cqioenHdovnItEyojjN io9YDE6v38FBDrD/BISyajTEtMecQtEa5p8lb0kX7e2hb3pVJSA18ARXAwbtFa9AK2cU 1NLg== X-Gm-Message-State: AOJu0YxB9+wlYPA90Rb0ohz0VO1dAJbL70YadLUX/DNXR4cRK6+2Er3b TsvvQOjszRopnMFdU1mq0Sc= X-Google-Smtp-Source: AGHT+IF+au/26DZppRfSY1JBKylZ69paUenUIhaTQgEAFOLOiiGsQNgQcKmRKnsMp77pD5FEQhdhCQ== X-Received: by 2002:a05:6512:220a:b0:503:1c58:8a46 with SMTP id h10-20020a056512220a00b005031c588a46mr7264885lfu.9.1695317027091; Thu, 21 Sep 2023 10:23:47 -0700 (PDT) Original-Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id g8-20020a19ee08000000b0050420791528sm363650lfb.293.2023.09.21.10.23.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Sep 2023 10:23:46 -0700 (PDT) In-Reply-To: X-Mailer: Apple Mail (2.3654.120.0.1.15) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:271009 Archived-At: 18 sep. 2023 kl. 14.32 skrev Stefan Monnier : > In the mean time the patch below recognizes the above pattern, which > gives me code which is safe (it should both always terminate and = should > never apply the optimization if it's not valid) yet does find the > optimization in all the cases where I expected it. Yes, maybe this would work but the ad-hocness of it all means that I = very much could have missed something (and as you comment, that it's = brittle). > case succeed_n: > - /* If N =3D=3D 0, it should be an on_failure_jump_loop = instead. */ > - DEBUG_STATEMENT (EXTRACT_NUMBER (j, p + 2); eassert (j > 0)); > + /* If N =3D=3D 0, it should be an on_failure_jump_loop = instead. > + `j` can be negative because `EXTRACT_NUMBER` extracts a > + signed number whereas `succeed_n` treats it as unsigned. = */ > + DEBUG_STATEMENT (EXTRACT_NUMBER (j, p + 2); eassert (j !=3D = 0)); So this is what prevented me from running with counts above 2**15 and = debugging enabled for all these years... > + if (loop_exit && p2 > loop_exit) > + { > + void print_compiled_pattern (struct re_pattern_buffer *bufp); > + print_compiled_pattern (bufp); > + fprintf (stderr, "p1=3D=3D%d, p2=3D=3D%d, loop-entry=3D=3D%d, = loop-exit=3D=3D%d\n", > + p1 - bufp->buffer, p2 - bufp->buffer, > + loop_entry - bufp->buffer, loop_exit - bufp->buffer); > + error ("WOW1!"); #ifdef REGEX_EMACS_DEBUG ? > + } > + /* return false; */