changeset: 98330:46aaff5e8945 branch: 3.4 parent: 98327:c5ee47b28a50 user: Serhiy Storchaka date: Sun Sep 27 22:34:59 2015 +0300 files: Misc/NEWS Modules/readline.c description: Issue #25203: Failed readline.set_completer_delims() no longer left the module in inconsistent state. diff -r c5ee47b28a50 -r 46aaff5e8945 Misc/NEWS --- a/Misc/NEWS Sun Sep 27 12:36:19 2015 -0400 +++ b/Misc/NEWS Sun Sep 27 22:34:59 2015 +0300 @@ -81,6 +81,9 @@ Library ------- +- Issue #25203: Failed readline.set_completer_delims() no longer left the + module in inconsistent state. + - Prevent overflow in _Unpickler_Read. - Issue #25047: The XML encoding declaration written by Element Tree now diff -r c5ee47b28a50 -r 46aaff5e8945 Modules/readline.c --- a/Modules/readline.c Sun Sep 27 12:36:19 2015 -0400 +++ b/Modules/readline.c Sun Sep 27 22:34:59 2015 +0300 @@ -427,10 +427,11 @@ /* Keep a reference to the allocated memory in the module state in case some other module modifies rl_completer_word_break_characters (see issue #17289). */ - free(completer_word_break_characters); - completer_word_break_characters = strdup(break_chars); - if (completer_word_break_characters) { - rl_completer_word_break_characters = completer_word_break_characters; + break_chars = strdup(break_chars); + if (break_chars) { + free(completer_word_break_characters); + completer_word_break_characters = break_chars; + rl_completer_word_break_characters = break_chars; Py_RETURN_NONE; } else