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 <[email protected]> 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
