--- Begin Message ---
Subject: |
[PATCH] Fix a segfault when /dev/urandom is not accessible |
Date: |
Tue, 21 Feb 2012 16:11:43 +0100 |
Hello schemers,
The function `fresh_syntax_session_id' defined macros.c assumes the
random module is loaded by calling `scm_i_random_bytes_from_platform'.
There are no symptoms when `read_dev_urandom' (random.c) works correctly
but the fallback method causes a segfault.
This patch fixes it.
Cheers,
Giuseppe
>From a8707a154c401bfad91678556342ca698bf873cf Mon Sep 17 00:00:00 2001
From: Giuseppe Scrivano <address@hidden>
Date: Tue, 21 Feb 2012 15:55:44 +0100
Subject: [PATCH] Fix a segfault when /dev/urandom is not accessible
* libguile/init.c (scm_i_init_guile): Call `scm_init_random' before
`scm_init_macros'.
---
libguile/init.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libguile/init.c b/libguile/init.c
index 7dec116..fbf8c7f 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -443,7 +443,8 @@ scm_i_init_guile (void *base)
scm_init_ioext ();
scm_init_keywords (); /* Requires smob_prehistory */
scm_init_list ();
- scm_init_macros (); /* Requires smob_prehistory */
+ scm_init_random (); /* Requires smob_prehistory */
+ scm_init_macros (); /* Requires smob_prehistory and random */
scm_init_mallocs (); /* Requires smob_prehistory */
scm_init_modules (); /* Requires smob_prehistory */
scm_init_numbers ();
@@ -501,7 +502,6 @@ scm_i_init_guile (void *base)
scm_init_eval_in_scheme ();
scm_init_evalext ();
scm_init_debug (); /* Requires macro smobs */
- scm_init_random (); /* Requires smob_prehistory */
scm_init_simpos ();
#if HAVE_MODULES
scm_init_dynamic_linking (); /* Requires smob_prehistory */
--
1.7.7.6
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#10862: [PATCH] Fix a segfault when /dev/urandom is not accessible |
Date: |
Wed, 07 Mar 2012 23:10:33 +0100 |
User-agent: |
Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux) |
Hi Giuseppe,
I was finally able to reproduce the problem by changing
‘scm_i_random_bytes_from_platform’ to force use of
‘random_state_of_last_resort’.
Your patch is applied as 3658a3744bcc7c75db24143db1dae1bd13554515.
Thanks!
Ludo’.
--- End Message ---