summaryrefslogtreecommitdiff
path: root/guile-readline
diff options
context:
space:
mode:
authorDaniel Llorens <lloda@sarc.name>2021-05-27 11:56:24 +0200
committerDaniel Llorens <lloda@sarc.name>2021-05-27 12:00:18 +0200
commitc1fd55d1747880ff2ea822e88a1c41482181cb49 (patch)
tree6032220ccba7715337447df669595eb19259170a /guile-readline
parent17aab66e75136cf23c7f0d4942b61d6947f98f9b (diff)
downloadguile-c1fd55d1747880ff2ea822e88a1c41482181cb49.tar.gz
Fix null dereference in readline initialization
* guile-readline/readline.c (init_bouncing_parens): Check that the keymap is valid before using it.
Diffstat (limited to 'guile-readline')
-rw-r--r--guile-readline/readline.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/guile-readline/readline.c b/guile-readline/readline.c
index 469d6ec7d..408ca55d7 100644
--- a/guile-readline/readline.c
+++ b/guile-readline/readline.c
@@ -431,12 +431,17 @@ static void init_bouncing_parens ();
static void
init_bouncing_parens ()
{
- if (strncmp (rl_get_keymap_name (rl_get_keymap ()), "vi", 2))
- {
- rl_bind_key (')', match_paren);
- rl_bind_key (']', match_paren);
- rl_bind_key ('}', match_paren);
- }
+ Keymap km = rl_get_keymap ();
+ if (km)
+ if (strncmp (rl_get_keymap_name (km), "vi", 2))
+ {
+ rl_bind_key (')', match_paren);
+ rl_bind_key (']', match_paren);
+ rl_bind_key ('}', match_paren);
+ }
+ else
+ scm_error (scm_misc_error_key, "", "readline has not been properly initialized",
+ SCM_EOL, SCM_EOL);
}
static int