strlcat() needs to walk to the end of its first argument. However,
but the length of state.header_str is already known, so optimise by
manually appending the extra characters if they will fit.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Volker Lendecke <vl@samba.org>
}
}
- /*
- * No +=, see man man strlcat
- */
- state.hs_len = strlcat(state.header_str, "] ", sizeof(state.header_str));
- if (state.hs_len >= sizeof(state.header_str)) {
+ if (state.hs_len >= sizeof(state.header_str) - 1) {
goto full;
}
+ state.header_str[state.hs_len] = ']';
+ state.hs_len++;
+ if (state.hs_len < sizeof(state.header_str) - 1) {
+ state.header_str[state.hs_len] = ' ';
+ state.hs_len++;
+ }
+ state.header_str[state.hs_len] = '\0';
if (!state.settings.debug_prefix_timestamp) {
state.hs_len += snprintf(state.header_str + state.hs_len,