From unknown Fri Jun 13 10:18:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56665: Segfault in SRFI-37 when raising ERROR in ARGS-FOLD. Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Wed, 20 Jul 2022 14:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56665 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 56665@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.165832825613569 (code B ref -1); Wed, 20 Jul 2022 14:45:01 +0000 Received: (at submit) by debbugs.gnu.org; 20 Jul 2022 14:44:16 +0000 Received: from localhost ([127.0.0.1]:58492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEAvw-0003Wn-0W for submit@debbugs.gnu.org; Wed, 20 Jul 2022 10:44:16 -0400 Received: from lists.gnu.org ([209.51.188.17]:46194) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEAvt-0003Wf-UB for submit@debbugs.gnu.org; Wed, 20 Jul 2022 10:44:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55238) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEAvt-0004sZ-PK for bug-guile@gnu.org; Wed, 20 Jul 2022 10:44:13 -0400 Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21177) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEAvr-0006T6-0E for bug-guile@gnu.org; Wed, 20 Jul 2022 10:44:13 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1658328245; cv=none; d=zohomail.com; s=zohoarc; b=mrFhgYjklOkalqqy5l/eZykZLzDXScvrJ4jDFX1BuxB8ZkpHwL7lyy/N40vG1KpHvSO5ZFs8Olce9UxVZarGH0o3mvzxuZULA06IOlW26h7gGu3AT+7pD14OJCyXY7mEfZlwB986kxlGWU6mtSNcNcVM+m+5bvYe/Tk38iSDYMA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658328245; h=Content-Type:Content-Transfer-Encoding:Date:From:MIME-Version:Message-ID:Subject:To; bh=Sl9D2p8/WQIvXUe1lB9sg1EySN5iqOvm6TBIBw4BR2k=; b=Ji5muhKdiqS+Cg4BkVHUbZRUhCVPSJ4Acr26pFASDaffJx9z6hI4iLX3jjBOaOzhAQP08yJcSsSs0XOlb2Tps85cwGthYAXNS0MePw6q1GGi5N5p6Ck4/qrm12MumyyrJ2wczwEpUwHwBoYEXv+dPfoRj604bSCtUhtL83AEBjk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1658328245; s=zoho; d=elephly.net; i=rekado@elephly.net; h=From:From:To:To:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc; bh=Sl9D2p8/WQIvXUe1lB9sg1EySN5iqOvm6TBIBw4BR2k=; b=IlS8Rpv5ASGJgWro9kmiMxzpoSRJUfD2cfiy79faYewssPZKwbhLDRMILj+nVHEi tSaHIPGPMd1DLFCNuTavIGxTtIIva+EgroaePZlTXlzoXGiMbPqC1FeORCaYfgNz4bW RJLQvut38h1EzpVJ0+q/G2Gp5gggb21/2wXe/Hjc= Received: from localhost (i5E862D20.versanet.de [94.134.45.32]) by mx.zohomail.com with SMTPS id 1658328244226149.0325793555213; Wed, 20 Jul 2022 07:44:04 -0700 (PDT) User-agent: mu4e 1.6.11; emacs 28.1 From: Ricardo Wurmus Date: Wed, 20 Jul 2022 16:34:53 +0200 X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Message-ID: <87y1wnsv2m.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External Received-SPF: pass client-ip=136.143.188.51; envelope-from=rekado@elephly.net; helo=sender4-of-o51.zoho.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hi, I got Guile to segfault in srfi-37. Here=E2=80=99s a Guile script: --8<---------------cut here---------------start------------->8--- #!/run/current-system/profile/bin/guile \ --no-auto-compile !# (use-modules (srfi srfi-1) (srfi srfi-37) (ice-9 match)) (define %options (list (option '("greet") #t #f (lambda (opt name arg result) (alist-cons 'greet arg (alist-delete 'greet result)))))) (define %default-options `((greet . "hello"))) (define (parse-options args) (args-fold args %options (lambda (opt name arg result) (pk 'unrecognized) (error "unrecognized option" name)) (lambda (arg result) (pk 'extraneous) (error "extraneous argument" arg)) %default-options)) (match (pk 'args (program-arguments)) ((_ . rest) (let ((config (parse-options rest))) (pk 'no-segfault))) (_ (pk 'usage))) --8<---------------cut here---------------end--------------->8--- And here is how to make it segfault: --8<---------------cut here---------------start------------->8--- ./segfault.scm --greet=3Dno --oh=3Dcrud ;;; (args ("./segfault.scm" "--greet=3Dno" "--oh=3Dcrud")) ;;; (unrecognized) Backtrace: 4 (primitive-load "/path/to/./segfault.scm") In ice-9/eval.scm: 293:34 3 (_ #(#(#(#(# ("./segfault= .scm" "--greet=3Dno" "--oh=3Dcrud")) #) "./segfault.s= cm" =E2=80=A6) =E2=80=A6)) In srfi/srfi-37.scm: 113:18 2 (next-arg) In unknown file: 1 Segmentation fault --8<---------------cut here---------------end--------------->8--- Looks like using ERROR in ARGS-FOLD leads to a segfault. --=20 Ricardo From unknown Fri Jun 13 10:18:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56665: Segfault in SRFI-37 when raising ERROR in ARGS-FOLD References: <87y1wnsv2m.fsf@elephly.net> In-Reply-To: <87y1wnsv2m.fsf@elephly.net> Resent-From: Olivier Dion Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 02 Jun 2025 13:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56665 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 56665@debbugs.gnu.org Received: via spool by 56665-submit@debbugs.gnu.org id=B56665.174886934423275 (code B ref 56665); Mon, 02 Jun 2025 13:03:02 +0000 Received: (at 56665) by debbugs.gnu.org; 2 Jun 2025 13:02:24 +0000 Received: from localhost ([127.0.0.1]:50196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uM4o4-00063L-Hf for submit@debbugs.gnu.org; Mon, 02 Jun 2025 09:02:24 -0400 Received: from smtp.polymtl.ca ([132.207.4.11]:59957) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uM4o2-00062v-Ab for 56665@debbugs.gnu.org; Mon, 02 Jun 2025 09:02:23 -0400 Received: from localhost (199-193-172-8.cpe.axion.ca [199.193.172.8]) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 552D2BtO056087 for <56665@debbugs.gnu.org>; Mon, 2 Jun 2025 09:02:16 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 552D2BtO056087 From: Olivier Dion Date: Mon, 02 Jun 2025 09:02:11 -0400 Message-ID: <87plfms3e4.fsf@laura> MIME-Version: 1.0 Content-Type: text/plain X-Poly-FromMTA: (199-193-172-8.cpe.axion.ca [199.193.172.8]) at Mon, 2 Jun 2025 13:02:11 +0000 X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, I don't have a fix for you, but for what it is worth, it is possible to avoid the segfault by wrapping the `args-fold` form with a `with-exception-handle` with `#:unwind? #t` like so: (with-exception-handler (lambda (exn) (raise-exception exn)) (lambda () (args-fold ...)) #:unwind? #t) -- Olivier Dion oldiob.ca