mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-25 17:40:08 +01:00
cli: fix failed assertion in readline helper
The INT signal can arrive after a new line has been processed in nmc_readline_helper(). In such case, the handler gets uninstalled by readline_cb() and nmc_seen_sigint() returns TRUE. However it's an error to call rl_callback_read_char() without handler, don't do it. Fixes the following: "readline: readline_callback_read_char() called with no handler!" #0 __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 __GI_abort () at abort.c:90 #2 rl_callback_read_char () at ../callback.c:116 #3 nmc_readline_helper (prompt=prompt@entry=0x2aa0d229080 "nmcli> ") at clients/cli/common.c:1387 #4 nmc_readline (prompt_fmt=prompt_fmt@entry=0x2aa0036ac9e "%s") at clients/cli/common.c:1448 #5 do_connection_edit (connection=0x2aa0d215440, nmc=0x2aa00391298 <nm_cli>) at clients/cli/connections.c:7072 Fixes:995229181chttps://bugzilla.redhat.com/show_bug.cgi?id=1458311 (cherry picked from commitcd3a561251)
This commit is contained in:
parent
9819ffe7d4
commit
2e181f9c4d
1 changed files with 4 additions and 2 deletions
|
|
@ -1383,8 +1383,10 @@ read_again:
|
|||
/* If Ctrl-C was detected, complete the line */
|
||||
if (nmc_seen_sigint ()) {
|
||||
rl_echo_signal_char (SIGINT);
|
||||
rl_stuff_char ('\n');
|
||||
rl_callback_read_char ();
|
||||
if (!rl_got_line) {
|
||||
rl_stuff_char ('\n');
|
||||
rl_callback_read_char ();
|
||||
}
|
||||
}
|
||||
|
||||
/* Add string to the history */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue