From unknown Sun Jun 15 08:42:46 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#18680 <18680@debbugs.gnu.org> To: bug#18680 <18680@debbugs.gnu.org> Subject: Status: [PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid segfault Reply-To: bug#18680 <18680@debbugs.gnu.org> Date: Sun, 15 Jun 2025 15:42:46 +0000 retitle 18680 [PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid s= egfault reassign 18680 guile submitter 18680 Nala Ginrut severity 18680 normal tag 18680 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 10 12:29:10 2014 Received: (at submit) by debbugs.gnu.org; 10 Oct 2014 16:29:10 +0000 Received: from localhost ([127.0.0.1]:40284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xcd41-0007Oo-Pl for submit@debbugs.gnu.org; Fri, 10 Oct 2014 12:29:10 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39428) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xcd3y-0007Oe-Ui for submit@debbugs.gnu.org; Fri, 10 Oct 2014 12:29:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xcd3H-0007q5-Mw for submit@debbugs.gnu.org; Fri, 10 Oct 2014 12:29:06 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:43325) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xcd3H-0007e8-K7 for submit@debbugs.gnu.org; Fri, 10 Oct 2014 12:28:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xccqs-0000mZ-KH for bug-guile@gnu.org; Fri, 10 Oct 2014 12:15:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xccqr-0003Qv-Nv for bug-guile@gnu.org; Fri, 10 Oct 2014 12:15:34 -0400 Received: from mail-lb0-x236.google.com ([2a00:1450:4010:c04::236]:40959) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xccqm-0003Pk-8Q; Fri, 10 Oct 2014 12:15:28 -0400 Received: by mail-lb0-f182.google.com with SMTP id z11so3293786lbi.41 for ; Fri, 10 Oct 2014 09:15:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=dyQOPMr23qMplfGtJAMZomdPtp+PqKqgQAF/v2tFt6A=; b=dj4uRDT5CqSnK0jpBjQiE203XGRxh6942Mk7ofGjF6ANZBhyW6WRovNVwqZMwfs8Am 5YzPeFi+i0ZcAkZmFhMXw0L0o6tTQZGcqNe7xsrwR9E/QimzDCN9NHebt6uS95FkZzJX GLTkK4/UegU0vRO8nMHmqTLHmyGOtzqpXFITmp7ygibfeLhV4Jf/UE9rt5bZR9DNxLf1 tt+OSBJGpVN2pxYtD6av9BVNPQBvdzfaMU02U5lTAPbT9wrKCdTsZOdkWQf3Qcc52cP7 QL4e5Mkl3Zo8kX7qetMeRU0aJI+3SAyHLJ6c6cFUuLXdkXHHtDlhENg1DMQR+WCi+KFE p6KA== MIME-Version: 1.0 X-Received: by 10.153.5.1 with SMTP id ci1mr6111620lad.60.1412957726277; Fri, 10 Oct 2014 09:15:26 -0700 (PDT) Received: by 10.152.28.105 with HTTP; Fri, 10 Oct 2014 09:15:25 -0700 (PDT) Date: Sat, 11 Oct 2014 00:15:25 +0800 Message-ID: Subject: [PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid segfault From: Nala Ginrut To: guile-devel , Eli Zaretskii , Andy Wingo , bug-guile@gnu.org, Mark H Weaver Content-Type: multipart/mixed; boundary=001a1133a74e5b9ec6050513dbb7 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) --001a1133a74e5b9ec6050513dbb7 Content-Type: text/plain; charset=UTF-8 This patch is for master branch, but the bug also appears in the current stable-2.0 I think. With the recent patch from Eli Zaretskii, there'd be one more step for argv[0]: scm_i_mirror_backslashes (argv[0]); But this cause my program segfault, since I have such line: scm_boot_guile(0, {NULL}, &guilemain, NULL); According to C11, it's allowed[1]. argv[argc] should be NULL. If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name. But if argc is zero, argv[0] will be NULL, so we have to check it first to avoid segfault. Attached patch fixed this. [1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf --001a1133a74e5b9ec6050513dbb7 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Check-argv-0-if-it-s-NULL-in-scm_boot_guile.patch" Content-Disposition: attachment; filename="0001-Check-argv-0-if-it-s-NULL-in-scm_boot_guile.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i13q22l10 RnJvbSBiNjkzODE1NmZlMWNhMmJhOGE3ZGIxNjc2MDQ2MThlZWEzMTI4MmYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYWxhIEdpbnJ1dCA8bmFsYWdpbnJ1dEBnbWFpbC5jb20+CkRh dGU6IEZyaSwgMTAgT2N0IDIwMTQgMjM6NTQ6MjQgKzA4MDAKU3ViamVjdDogW1BBVENIXSBDaGVj ayBhcmd2WzBdIGlmIGl0J3MgTlVMTCBpbiBzY21fYm9vdF9ndWlsZQoKQWNjb3JkaW5nIHRvIEMx MSwgYXJndlthcmdjXSBzaG91bGQgYmUgTlVMTC4KSWYgdGhlIHZhbHVlIG9mIGFyZ2MgaXMgZ3Jl YXRlciB0aGFuIHplcm8sIHRoZSBzdHJpbmcgcG9pbnRlZCB0byBieSBhcmd2WzBdCnJlcHJlc2Vu dHMgdGhlIHByb2dyYW0gbmFtZS4gQnV0IGlmIGFyZ2MgaXMgemVybywgYXJndlswXSB3aWxsIGJl IE5VTEwsIHNvCndlIGhhdmUgdG8gY2hlY2sgaXQgZmlyc3QgdG8gYXZvaWQgc2VnZmF1bHQuCgoq IGxpYmd1aWxlL2luaXQuYwotLS0KIGxpYmd1aWxlL2luaXQuYyB8ICAgMTAgKysrKysrKystLQog MSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJndWlsZS9pbml0LmMgYi9saWJndWlsZS9pbml0LmMKaW5kZXggZDI5MjhiZC4uZTEx MTE1YyAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvaW5pdC5jCisrKyBiL2xpYmd1aWxlL2luaXQuYwpA QCAtMzExLDggKzMxMSwxNCBAQCBzY21fYm9vdF9ndWlsZSAoaW50IGFyZ2MsIGNoYXIgKiogYXJn diwgdm9pZCAoKm1haW5fZnVuYykgKCksIHZvaWQgKmNsb3N1cmUpCiAgIHN0cnVjdCBtYWluX2Z1 bmNfY2xvc3VyZSBjOwogCiAgIC8qIE9uIFdpbmRvd3MsIGNvbnZlcnQgYmFja3NsYXNoZXMgaW4g YXJndlswXSB0byBmb3J3YXJkCi0gICAgIHNsYXNoZXMuICAqLwotICBzY21faV9taXJyb3JfYmFj a3NsYXNoZXMgKGFyZ3ZbMF0pOworICAgICBzbGFzaGVzLgorICAgICBBY2NvcmRpbmcgdG8gQzEx LCBhcmd2W2FyZ2NdIHNob3VsZCBiZSBOVUxMLgorICAgICBJZiB0aGUgdmFsdWUgb2YgYXJnYyBp cyBncmVhdGVyIHRoYW4gemVybywgdGhlIHN0cmluZyBwb2ludGVkIHRvIGJ5IGFyZ3ZbMF0KKyAg ICAgcmVwcmVzZW50cyB0aGUgcHJvZ3JhbSBuYW1lLiBCdXQgaWYgYXJnYyBpcyB6ZXJvLCBhcmd2 WzBdIHdpbGwgYmUgTlVMTCwgc28KKyAgICAgd2UgaGF2ZSB0byBjaGVjayBpdCBmaXJzdCB0byBh dm9pZCBzZWdmYXVsdC4KKyAgICovCisgIGlmIChhcmdjKQorICAgIHNjbV9pX21pcnJvcl9iYWNr c2xhc2hlcyAoYXJndlswXSk7CiAgIGMubWFpbl9mdW5jID0gbWFpbl9mdW5jOwogICBjLmNsb3N1 cmUgPSBjbG9zdXJlOwogICBjLmFyZ2MgPSBhcmdjOwotLSAKMS43LjEwLjQKCg== --001a1133a74e5b9ec6050513dbb7-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 11 13:06:23 2014 Received: (at 18680-done) by debbugs.gnu.org; 11 Oct 2014 17:06:23 +0000 Received: from localhost ([127.0.0.1]:41249 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xd07b-0001Fv-0K for submit@debbugs.gnu.org; Sat, 11 Oct 2014 13:06:23 -0400 Received: from world.peace.net ([96.39.62.75]:35604) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xd07X-0001Fm-RO for 18680-done@debbugs.gnu.org; Sat, 11 Oct 2014 13:06:21 -0400 Received: from c-24-62-95-23.hsd1.ma.comcast.net ([24.62.95.23] helo=yeeloong.lan) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1Xd07Q-0007Zc-UA; Sat, 11 Oct 2014 13:06:13 -0400 From: Mark H Weaver To: Nala Ginrut Subject: Re: [PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid segfault References: Date: Sat, 11 Oct 2014 13:05:45 -0400 In-Reply-To: (Nala Ginrut's message of "Sat, 11 Oct 2014 00:15:25 +0800") Message-ID: <87vbnqiljq.fsf@yeeloong.lan> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18680-done Cc: 18680-done@debbugs.gnu.org, Andy Wingo , Eli Zaretskii , guile-devel@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 0.0 (/) Nala Ginrut writes: > This patch is for master branch, but the bug also appears in the > current stable-2.0 I think. > > With the recent patch from Eli Zaretskii, there'd be one more step for argv[0]: > scm_i_mirror_backslashes (argv[0]); > > But this cause my program segfault, since I have such line: > scm_boot_guile(0, {NULL}, &guilemain, NULL); > > According to C11, it's allowed[1]. > argv[argc] should be NULL. > If the value of argc is greater than zero, the string pointed to by argv[0] > represents the program name. But if argc is zero, argv[0] will be NULL, so > we have to check it first to avoid segfault. Fixed in b9ace68613395fda26f3f3d7dc2ac9bc52cd7f2a on the stable-2.0 branch. It'll go into master on the next merge. Thanks, Mark From unknown Sun Jun 15 08:42:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 09 Nov 2014 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator