aboutsummaryrefslogtreecommitdiff
path: root/scripts/mkdiff_obj
diff options
context:
space:
mode:
authorGrant Erickson <gerickson@nuovations.com>2025-04-08 15:39:30 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2025-04-08 16:14:34 +0200
commitfc466720b5e8611f485bc574c0114d5037525f92 (patch)
tree513990bcba39d0939d4320a66c2471b4601d8de1 /scripts/mkdiff_obj
parentd2d23c848acd6f336d9b0edae613eef443a6de20 (diff)
downloadbusybox-w32-fc466720b5e8611f485bc574c0114d5037525f92.tar.gz
busybox-w32-fc466720b5e8611f485bc574c0114d5037525f92.tar.bz2
busybox-w32-fc466720b5e8611f485bc574c0114d5037525f92.zip
syslogd: Fix 'OPT_locallog' check regression in 'syslogd_main'
In the recent refactoring of 'syslogd_main', a regression was introduced in handling the manual bitwise OR of 'OPT_locallog' as follows: if (ENABLE_FEATURE_REMOTE_LOG && !(opts & OPT_remotelog)) // -R option_mask32 |= OPT_locallog; 'opts' represents the locally-scoped output of 'getopt32' and 'option_mask32' represents the globally-scoped state of the same. Consequently, the above performs a bitwise OR to include 'OPT_locallog' of the globally-scoped option state, which 'opts' will not reflect locally. Manipulating the global, rather than local, state is correct as 'timestamp_and_log_internal' will later need to check 'OPT_locallog'. However, when the aforementioned refactor occurred, the following regressing change was made: - if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) { + if (!ENABLE_FEATURE_REMOTE_LOG || (opts & OPT_locallog)) { breaking the spatially- and temporally-removed check in 'timestamp_and_log_internal'. Fixes: 02378ce20c6d2 ("syslogd: decrease stack usage, ~50 bytes") function old new delta syslogd_init 1140 1137 -3 Signed-off-by: Grant Erickson <gerickson@nuovations.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'scripts/mkdiff_obj')
0 files changed, 0 insertions, 0 deletions