view .lua-format @ 14181:6fb6e383123f 13.0

util.signal: Fix signalfd closure on non-Linux systems The loop was incorrect for 0-indexed arrays. It started at signalfd_num, which is the total number of signalfds, and decremented to 1 (condition was >0). So if 1 signalfd was registered, it would check only signalfds[1]. At capacity (32 signalfds) it would read past the end of the array. In every case, it would always skip the entry at position [0], leading to a leak. The swap-with-tail removal of the matched item used the post-decrement operator, leading to accessing the array slot just beyond the tail. Finally, it didn't break after finding a match. Probably harmless, but there isn't expected to be more than a single entry per fd, as far as I can tell.
author Matthew Wild <mwild1@gmail.com>
date Mon, 25 May 2026 16:02:39 +0100
parents 81ae5e12550f
children
line wrap: on
line source

align_args: false
align_parameter: false
align_table_field: true
break_after_functioncall_lp: false
break_after_functiondef_lp: false
break_after_operator: false
break_after_table_lb: true
break_before_functioncall_rp: false
break_before_functiondef_rp: false
break_before_table_rb: true
chop_down_kv_table: true
chop_down_parameter: false
chop_down_table: true
column_limit: 150
column_table_limit: 120
continuation_indent_width: 1
double_quote_to_single_quote: false
extra_sep_at_table_end: true
indent_width: 1
keep_simple_control_block_one_line: true
keep_simple_function_one_line: true
line_breaks_after_function_body: 1
line_separator: input
single_quote_to_double_quote: false
spaces_around_equals_in_field: true
spaces_before_call: 1
spaces_inside_functioncall_parens: false
spaces_inside_functiondef_parens: false
spaces_inside_table_braces: true
tab_width: 1
table_sep: ";"
use_tab: true