$ echo $BASH_VERSION 5.1.0(1)-rc1 $ echo $LC_ALL C.UTF-8 $ echo é/* é/* $ echo 'é'/* Segmentation fault (core dumped)
The same occurs when escaping with a backslash. Whether or not the glob actually matches something does not appear to matter. I could not reproduce this with 5.0.3(1)-release, so I guess this was introduced with version 5.1. Here's the backtrace: #5 0x0000564e8eb3a4fb in wdequote_pathname (pathname=pathname@entry=0x564e8f46b6d0 "é/") at ../../.././lib/glob/glob.c:487 ps = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}} len = 4 n = <optimized out> wpathname = 0x0 i = <optimized out> j = <optimized out> orig_wpathname = 0x564e8f5b60b0 L"é/" #6 0x0000564e8eb3b0eb in dequote_pathname (pathname=0x564e8f46b6d0 "é/") at ../../.././lib/glob/glob.c:504 No locals. #7 glob_filename (pathname=pathname@entry=0x564e8f46b790 "\\é/*", flags=0) at ../../.././lib/glob/glob.c:1466 temp_results = <optimized out> result = 0x564e8f5d8a50 new_result = <optimized out> result_size = 1 directory_name = 0x564e8f46b6d0 "é/" filename = 0x564e8f46b794 "*" dname = <optimized out> fn = <optimized out> directory_len = 4 free_dirname = 1 dflags = <optimized out> hasglob = <optimized out> #8 0x0000564e8eb05c2d in shell_glob_filename (pathname=<optimized out>, qflags=qflags@entry=8) at .././pathexp.c:470 temp = 0x564e8f46b790 "\\é/*" results = <optimized out> gflags = <optimized out> quoted_pattern = <optimized out> #9 0x0000564e8eaf33e6 in glob_expand_word_list (tlist=0x564e8f45d380, eflags=31) at .././subst.c:11383 glob_array = 0x0 temp_string = <optimized out> glob_index = <optimized out> glob_list = <optimized out> output_list = 0x564e8f45d160 disposables = 0x0 next = 0x0 tword = <optimized out> x = <optimized out> #10 0x0000564e8eb00685 in expand_word_list_internal (eflags=31, list=<optimized out>) at .././subst.c:11983 new_list = <optimized out> temp_list = <optimized out> tint = <optimized out> savecmd = <optimized out> new_list = <optimized out> temp_list = <optimized out> tint = <optimized out> savecmd = <optimized out> assign_func = <optimized out> is_special_builtin = <optimized out> is_builtin_or_func = <optimized out> #11 expand_words (list=<optimized out>) at .././subst.c:11331 No locals. #12 0x0000564e8ead25f3 in execute_simple_command (fds_to_close=0x564e8f45d6e0, async=0, pipe_out=-1, pipe_in=-1, simple_command=<optimized out>) at .././execute_cmd.c:4377 words = <optimized out> first_word_quoted = <optimized out> result = <optimized out> builtin_is_special = 0 old_last_async_pid = <optimized out> command_line = 0x0 temp = <optimized out> dofork = <optimized out> fork_flags = <optimized out> old_builtin = 0 lastarg = <optimized out> cmdflags = 0 builtin = <optimized out> lastword = <optimized out> already_forked = 0 func = <optimized out> old_command_builtin = 0 words = <optimized out> lastword = <optimized out> command_line = <optimized out> lastarg = <optimized out> temp = <optimized out> first_word_quoted = <optimized out> result = <optimized out> builtin_is_special = <optimized out> already_forked = <optimized out> dofork = <optimized out> fork_flags = <optimized out> cmdflags = <optimized out> old_last_async_pid = <optimized out> builtin = <optimized out> func = <optimized out> old_builtin = <optimized out> old_command_builtin = <optimized out> p = <optimized out> disposer = <optimized out> l = <optimized out> cmdtype = <optimized out> job = <optimized out> jflags = <optimized out> started_status = <optimized out> #13 execute_command_internal (command=0x564e8f44af10, asynchronous=<optimized out>, pipe_in=-1, pipe_out=<optimized out>, fds_to_close=0x564e8f45d6e0) at .././execute_cmd.c:846 exec_result = 0 user_subshell = <optimized out> invert = <optimized out> ignore_return = 0 was_error_trap = 0 fork_flags = <optimized out> my_undo_list = 0x0 exec_undo_list = 0x0 tcmd = <optimized out> save_line_number = 3 ofifo = 0 nfifo = 0 osize = 0 saved_fifo = 0 ofifo_list = 0x0 #14 0x0000564e8ead3865 in execute_command (command=0x564e8f44af10) at .././execute_cmd.c:395 bitmap = 0x564e8f45d6e0 result = <optimized out> #15 0x0000564e8eab99db in reader_loop () at .././eval.c:170 code = <optimized out> our_indirection_level = 1 current_command = 0x564e8f44af10 #16 0x0000564e8eab8668 in main (argc=1, argv=0x7ffef0ca95a8, env=0x7ffef0ca95b8) at .././shell.c:811 i = <optimized out> code = <optimized out> old_errexit_flag = 0 saverst = <optimized out> locally_skip_execution = 0 arg_index = 1 top_level_arg_index = 1