From unknown Tue Aug 19 23:13:06 2025 X-Loop: help-debbugs@gnu.org Subject: bug#19246: bindings: void return function *can* trigger a segfault Resent-From: Amirouche Boubekki Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 01 Dec 2014 20:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 19246 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 19246@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.141746515310726 (code B ref -1); Mon, 01 Dec 2014 20:20:01 +0000 Received: (at submit) by debbugs.gnu.org; 1 Dec 2014 20:19:13 +0000 Received: from localhost ([127.0.0.1]:51140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvXRB-0002mw-56 for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:13 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57157) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvXR8-0002mo-VV for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XvXR7-00006A-T4 for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:10 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:50364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR7-00005w-QJ for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58849) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR6-0007GJ-Fj for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XvXR5-0008VY-F0 for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:08 -0500 Received: from mail-yk0-x236.google.com ([2607:f8b0:4002:c07::236]:33625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR5-0008VI-AY for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:07 -0500 Received: by mail-yk0-f182.google.com with SMTP id 131so5147864ykp.13 for ; Mon, 01 Dec 2014 12:19:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=XBHOPsDHTxBjr4SfTvY5VcnFJt1DEwPvvZaGgcdhwYQ=; b=jY2OTqAwIO2aRYCG+DwQ2HhsAT/UhJkfHBcb992mCIwJi46c3wUvs6ptyOR+uA4st6 ncMtIRl1lq2pQQztboFzBjniJ3TtKaNjoU1bzxruYGTLHsbUl6yA3XfFONXgcqjoaMkv /6I6TbY3Nj7YMYB3nHceaYtkLQW8zZI6z50e/GzocU+6pRpmBaAyVeLwNxeSwXhiGnmE vWezWC863P40vkU4yaO/iad3qx43qKW0WrJBL9Yl8eDdmrPUmFIwLY0voIYtGcu9mmf5 keZw/JETOz2sR50yXOUKE8N6tbsX1FQ8RHEsmoUB5IAzmJ2G+TDc3Bgt3zB+Vc0I0MUW dnkw== X-Received: by 10.170.156.130 with SMTP id x124mr71330433ykc.31.1417465146890; Mon, 01 Dec 2014 12:19:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.72.67 with HTTP; Mon, 1 Dec 2014 12:18:46 -0800 (PST) From: Amirouche Boubekki Date: Mon, 1 Dec 2014 21:18:46 +0100 Message-ID: Content-Type: multipart/mixed; boundary=001a113a6c5e8ff77f05092d5255 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-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 (----) --001a113a6c5e8ff77f05092d5255 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable H=C3=A9llo, I reproduce the bug every time with the attached files. Here is gdb backtra= ce: ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- #0 0x00007ffff7921e56 in vm_debug_engine (vm=3D0x6f8020, program=3D0xf5b280, argv=3D0x7fffffffc100, nargs=3D2) at vm-i-system.c:890 #1 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x786680, argv=3D0x7fffffffc0f8, nargs=3D1) at vm.c:768 #2 0x00007ffff78622a7 in scm_primitive_eval (exp=3D0xf62420) at eval.c:692 #3 0x00007ffff78932df in scm_primitive_load (filename=3D0xf53360) at load.= c:124 #4 0x00007ffff7921aa3 in vm_debug_engine (vm=3D0x6f8020, program=3D0x7ffff7bb79c0 , argv=3D0x7fffffffcf90, nargs=3D1) at vm-i-system.c:855 #5 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x786680, argv=3D0x7fffffffcf88, nargs=3D1) at vm.c:768 #6 0x00007ffff78622a7 in scm_primitive_eval (exp=3D0x8c25c0) at eval.c:692 #7 0x00007ffff7862361 in scm_eval (exp=3D0x8c25c0, module_or_state=3D0x888c60) at eval.c:726 #8 0x00007ffff78d6903 in scm_shell (argc=3D1, argv=3D0x7fffffffe318) at script.c:439 #9 0x0000000000400c81 in inner_main (closure=3D0x0, argc=3D1, argv=3D0x7fffffffe318) at guile.c:62 #10 0x00007ffff788a36d in invoke_main_func (body_data=3D0x7fffffffe1f0) at init.c:336 #11 0x00007ffff7857148 in c_body (d=3D0x7fffffffe0b0) at continuations.c:51= 7 #12 0x00007ffff7903b23 in apply_catch_closure (clo=3D0x895b60, args=3D0x304) at throw.c:140 #13 0x00007ffff78d7126 in apply_1 (smob=3D0x895b60, a=3D0x304) at smob.c:14= 2 #14 0x00007ffff790e2d5 in vm_regular_engine (vm=3D0x6f8020, program=3D0x6f3000, argv=3D0x7fffffffdf80, nargs=3D2) at vm-i-system.c:858 #15 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x678c30, argv=3D0x7fffffffdf60, nargs=3D4) at vm.c:768 #16 0x00007ffff7861a28 in scm_call_4 (proc=3D0x678c30, arg1=3D0x404, arg2=3D0x895b60, arg3=3D0x895b40, arg4=3D0x895b20) at eval.c:507 #17 0x00007ffff7903980 in scm_catch_with_pre_unwind_handler (key=3D0x404, thunk=3D0x895b60, handler=3D0x895b40, pre_unwind_handler=3D0x895b20) at throw.c:73 #18 0x00007ffff7903bfb in scm_c_catch (tag=3D0x404, body=3D0x7ffff7857120 , body_data=3D0x7fffffffe0b0, handler=3D0x7ffff7857157 , handler_data=3D0x7fffffffe0b0, pre_unwind_handler=3D0x7ffff78571b4 , pre_unwind_handler_data=3D0x77dfa0) at throw.c:207 ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- The related code is: ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- case 10: ret =3D subr (sp[-9], sp[-8], sp[-7], sp[-6], sp[-5], sp[-4], sp[-3], sp[-2], sp[-1], sp[0]); break; default: abort (); } NULLSTACK_FOR_NONLOCAL_EXIT (); if (SCM_UNLIKELY (SCM_VALUESP (ret))) { /* multiple values returned to continuation */ ret =3D scm_struct_ref (ret, SCM_INUM0); nvalues =3D scm_ilength (ret); PUSH_LIST (ret, scm_is_null); goto vm_return_values; } else { PUSH (ret); goto vm_return; } ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- It's seems to me that the code always expects something to be returned. During my tests ret is according to gdb (SCM) 0xbb8 (=3D3000 =3D c variable from process function) An easy fix for bindings creator, is to return a valid SCM value like SCM_BOOL_T. Best regards. --001a113a6c5e8ff77f05092d5255 Content-Type: text/x-csrc; charset=US-ASCII; name="void-return.c" Content-Disposition: attachment; filename="void-return.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i36a231v1 I2luY2x1ZGUgPGxpYmd1aWxlLmg+CgoKdm9pZCBwcm9jZXNzKFNDTSBpbnRlZ2VyLCBTQ00gb3Ro ZXIpIHsKICBpbnQgYSA9IHNjbV90b19pbnQoaW50ZWdlcik7CiAgaW50IGIgPSBzY21fdG9faW50 KG90aGVyKTsKICBpbnQgaSwgYyA9IDA7CgogIGZvciAoaSA9IDA7IGk8MTAwMDsgaSsrKSB7CiAg ICBjID0gYyArIGEgKyBiOwogIH0KfQoKCnZvaWQgaW5pdCAoKSB7CiAgc2NtX2NfZGVmaW5lX2dz dWJyKCJwcm9jZXNzIiwgMiwgMCwgMCwgcHJvY2Vzcyk7Cn0KCg== --001a113a6c5e8ff77f05092d5255 Content-Type: text/x-scheme; charset=US-ASCII; name="void-return.scm" Content-Disposition: attachment; filename="void-return.scm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i36a2jd01 KGRlZmluZS1tb2R1bGUgKHZvaWQtcmV0dXJuKQogICM6ZXhwb3J0ICgpKQoKKGxvYWQtZXh0ZW5z aW9uICIuL3ZvaWQtcmV0dXJuIiAiaW5pdCIpCgoocHJvY2VzcyAxIDIpCg== --001a113a6c5e8ff77f05092d5255-- From unknown Tue Aug 19 23:13:06 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Amirouche Boubekki Subject: bug#19246: closed (Re: bug#19246: bindings: void return function *can* trigger a segfault) Message-ID: References: <874mtfjaz5.fsf@gnu.org> X-Gnu-PR-Message: they-closed 19246 X-Gnu-PR-Package: guile Reply-To: 19246@debbugs.gnu.org Date: Mon, 01 Dec 2014 21:51:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1417470662-19607-1" This is a multi-part message in MIME format... ------------=_1417470662-19607-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #19246: bindings: void return function *can* trigger a segfault which was filed against the guile package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 19246@debbugs.gnu.org. --=20 19246: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D19246 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1417470662-19607-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 19246-done) by debbugs.gnu.org; 1 Dec 2014 21:50:43 +0000 Received: from localhost ([127.0.0.1]:51186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvYrj-00055k-Ac for submit@debbugs.gnu.org; Mon, 01 Dec 2014 16:50:43 -0500 Received: from hera.aquilenet.fr ([141.255.128.1]:36879) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvYrg-00055b-Np for 19246-done@debbugs.gnu.org; Mon, 01 Dec 2014 16:50:41 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 1174640E3; Mon, 1 Dec 2014 22:50:40 +0100 (CET) Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fWRMlnJpiGvs; Mon, 1 Dec 2014 22:50:39 +0100 (CET) Received: from pluto (reverse-83.fdn.fr [80.67.176.83]) by hera.aquilenet.fr (Postfix) with ESMTPSA id AB2F2165B; Mon, 1 Dec 2014 22:50:39 +0100 (CET) From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Amirouche Boubekki Subject: Re: bug#19246: bindings: void return function *can* trigger a segfault References: Date: Mon, 01 Dec 2014 22:50:38 +0100 In-Reply-To: (Amirouche Boubekki's message of "Mon, 1 Dec 2014 21:18:46 +0100") Message-ID: <874mtfjaz5.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 19246-done Cc: 19246-done@debbugs.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: 1.0 (+) Hi, Amirouche Boubekki skribis: > void process(SCM integer, SCM other) { > int a =3D scm_to_int(integer); > int b =3D scm_to_int(other); > int i, c =3D 0; > > for (i =3D 0; i<1000; i++) { > c =3D c + a + b; > } > } > > > void init () { > scm_c_define_gsubr("process", 2, 0, 0, process); > } Functions exposed to Scheme must always return =E2=80=98SCM=E2=80=99. So =E2=80=98process=E2=80=99 above must be changed to return =E2=80=98SCM= =E2=80=99, possibly the SCM_UNSPECIFIED value since it=E2=80=99s a side-effecting function. Thanks, Ludo=E2=80=99. ------------=_1417470662-19607-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 1 Dec 2014 20:19:13 +0000 Received: from localhost ([127.0.0.1]:51140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvXRB-0002mw-56 for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:13 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57157) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XvXR8-0002mo-VV for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XvXR7-00006A-T4 for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:10 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:50364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR7-00005w-QJ for submit@debbugs.gnu.org; Mon, 01 Dec 2014 15:19:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58849) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR6-0007GJ-Fj for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XvXR5-0008VY-F0 for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:08 -0500 Received: from mail-yk0-x236.google.com ([2607:f8b0:4002:c07::236]:33625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XvXR5-0008VI-AY for bug-guile@gnu.org; Mon, 01 Dec 2014 15:19:07 -0500 Received: by mail-yk0-f182.google.com with SMTP id 131so5147864ykp.13 for ; Mon, 01 Dec 2014 12:19:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=XBHOPsDHTxBjr4SfTvY5VcnFJt1DEwPvvZaGgcdhwYQ=; b=jY2OTqAwIO2aRYCG+DwQ2HhsAT/UhJkfHBcb992mCIwJi46c3wUvs6ptyOR+uA4st6 ncMtIRl1lq2pQQztboFzBjniJ3TtKaNjoU1bzxruYGTLHsbUl6yA3XfFONXgcqjoaMkv /6I6TbY3Nj7YMYB3nHceaYtkLQW8zZI6z50e/GzocU+6pRpmBaAyVeLwNxeSwXhiGnmE vWezWC863P40vkU4yaO/iad3qx43qKW0WrJBL9Yl8eDdmrPUmFIwLY0voIYtGcu9mmf5 keZw/JETOz2sR50yXOUKE8N6tbsX1FQ8RHEsmoUB5IAzmJ2G+TDc3Bgt3zB+Vc0I0MUW dnkw== X-Received: by 10.170.156.130 with SMTP id x124mr71330433ykc.31.1417465146890; Mon, 01 Dec 2014 12:19:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.72.67 with HTTP; Mon, 1 Dec 2014 12:18:46 -0800 (PST) From: Amirouche Boubekki Date: Mon, 1 Dec 2014 21:18:46 +0100 Message-ID: Subject: bindings: void return function *can* trigger a segfault To: bug-guile@gnu.org Content-Type: multipart/mixed; boundary=001a113a6c5e8ff77f05092d5255 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 (----) --001a113a6c5e8ff77f05092d5255 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable H=C3=A9llo, I reproduce the bug every time with the attached files. Here is gdb backtra= ce: ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- #0 0x00007ffff7921e56 in vm_debug_engine (vm=3D0x6f8020, program=3D0xf5b280, argv=3D0x7fffffffc100, nargs=3D2) at vm-i-system.c:890 #1 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x786680, argv=3D0x7fffffffc0f8, nargs=3D1) at vm.c:768 #2 0x00007ffff78622a7 in scm_primitive_eval (exp=3D0xf62420) at eval.c:692 #3 0x00007ffff78932df in scm_primitive_load (filename=3D0xf53360) at load.= c:124 #4 0x00007ffff7921aa3 in vm_debug_engine (vm=3D0x6f8020, program=3D0x7ffff7bb79c0 , argv=3D0x7fffffffcf90, nargs=3D1) at vm-i-system.c:855 #5 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x786680, argv=3D0x7fffffffcf88, nargs=3D1) at vm.c:768 #6 0x00007ffff78622a7 in scm_primitive_eval (exp=3D0x8c25c0) at eval.c:692 #7 0x00007ffff7862361 in scm_eval (exp=3D0x8c25c0, module_or_state=3D0x888c60) at eval.c:726 #8 0x00007ffff78d6903 in scm_shell (argc=3D1, argv=3D0x7fffffffe318) at script.c:439 #9 0x0000000000400c81 in inner_main (closure=3D0x0, argc=3D1, argv=3D0x7fffffffe318) at guile.c:62 #10 0x00007ffff788a36d in invoke_main_func (body_data=3D0x7fffffffe1f0) at init.c:336 #11 0x00007ffff7857148 in c_body (d=3D0x7fffffffe0b0) at continuations.c:51= 7 #12 0x00007ffff7903b23 in apply_catch_closure (clo=3D0x895b60, args=3D0x304) at throw.c:140 #13 0x00007ffff78d7126 in apply_1 (smob=3D0x895b60, a=3D0x304) at smob.c:14= 2 #14 0x00007ffff790e2d5 in vm_regular_engine (vm=3D0x6f8020, program=3D0x6f3000, argv=3D0x7fffffffdf80, nargs=3D2) at vm-i-system.c:858 #15 0x00007ffff7932826 in scm_c_vm_run (vm=3D0x6f8020, program=3D0x678c30, argv=3D0x7fffffffdf60, nargs=3D4) at vm.c:768 #16 0x00007ffff7861a28 in scm_call_4 (proc=3D0x678c30, arg1=3D0x404, arg2=3D0x895b60, arg3=3D0x895b40, arg4=3D0x895b20) at eval.c:507 #17 0x00007ffff7903980 in scm_catch_with_pre_unwind_handler (key=3D0x404, thunk=3D0x895b60, handler=3D0x895b40, pre_unwind_handler=3D0x895b20) at throw.c:73 #18 0x00007ffff7903bfb in scm_c_catch (tag=3D0x404, body=3D0x7ffff7857120 , body_data=3D0x7fffffffe0b0, handler=3D0x7ffff7857157 , handler_data=3D0x7fffffffe0b0, pre_unwind_handler=3D0x7ffff78571b4 , pre_unwind_handler_data=3D0x77dfa0) at throw.c:207 ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- The related code is: ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- case 10: ret =3D subr (sp[-9], sp[-8], sp[-7], sp[-6], sp[-5], sp[-4], sp[-3], sp[-2], sp[-1], sp[0]); break; default: abort (); } NULLSTACK_FOR_NONLOCAL_EXIT (); if (SCM_UNLIKELY (SCM_VALUESP (ret))) { /* multiple values returned to continuation */ ret =3D scm_struct_ref (ret, SCM_INUM0); nvalues =3D scm_ilength (ret); PUSH_LIST (ret, scm_is_null); goto vm_return_values; } else { PUSH (ret); goto vm_return; } ----8<--------------8<--------------8<--------------8<--------------8<-----= ---------8<--------------8<---------- It's seems to me that the code always expects something to be returned. During my tests ret is according to gdb (SCM) 0xbb8 (=3D3000 =3D c variable from process function) An easy fix for bindings creator, is to return a valid SCM value like SCM_BOOL_T. Best regards. --001a113a6c5e8ff77f05092d5255 Content-Type: text/x-csrc; charset=US-ASCII; name="void-return.c" Content-Disposition: attachment; filename="void-return.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i36a231v1 I2luY2x1ZGUgPGxpYmd1aWxlLmg+CgoKdm9pZCBwcm9jZXNzKFNDTSBpbnRlZ2VyLCBTQ00gb3Ro ZXIpIHsKICBpbnQgYSA9IHNjbV90b19pbnQoaW50ZWdlcik7CiAgaW50IGIgPSBzY21fdG9faW50 KG90aGVyKTsKICBpbnQgaSwgYyA9IDA7CgogIGZvciAoaSA9IDA7IGk8MTAwMDsgaSsrKSB7CiAg ICBjID0gYyArIGEgKyBiOwogIH0KfQoKCnZvaWQgaW5pdCAoKSB7CiAgc2NtX2NfZGVmaW5lX2dz dWJyKCJwcm9jZXNzIiwgMiwgMCwgMCwgcHJvY2Vzcyk7Cn0KCg== --001a113a6c5e8ff77f05092d5255 Content-Type: text/x-scheme; charset=US-ASCII; name="void-return.scm" Content-Disposition: attachment; filename="void-return.scm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i36a2jd01 KGRlZmluZS1tb2R1bGUgKHZvaWQtcmV0dXJuKQogICM6ZXhwb3J0ICgpKQoKKGxvYWQtZXh0ZW5z aW9uICIuL3ZvaWQtcmV0dXJuIiAiaW5pdCIpCgoocHJvY2VzcyAxIDIpCg== --001a113a6c5e8ff77f05092d5255-- ------------=_1417470662-19607-1--