Final refinements for security and performance

- Add explicit null termination for consistency
- Optimize string concatenation to avoid redundant strlen calls
- Track actual characters added to maintain O(n) complexity
- Improve code clarity with better comments

Co-authored-by: squassina <8495707+squassina@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-18 09:01:20 +00:00
parent 12fe0abca1
commit 21088fe86a
2 changed files with 15 additions and 5 deletions

View file

@ -601,12 +601,21 @@ static char *combine_args_until_empty(char *values[], int count) {
size_t current_len = 0;
for (int i = 0; i < first_empty; i++) {
if (i > 0 && current_len < total_len) {
strncat(combined, ",", total_len - current_len);
current_len = strlen(combined);
size_t remaining = total_len - current_len;
size_t to_add = (remaining < 1) ? 0 : 1;
if (to_add > 0) {
strncat(combined, ",", remaining);
current_len += to_add; // We know we added 1 character
}
}
if (current_len < total_len) {
strncat(combined, values[i], total_len - current_len);
current_len = strlen(combined);
size_t remaining = total_len - current_len;
size_t val_len = strlen(values[i]);
size_t to_add = (val_len < remaining) ? val_len : remaining;
if (to_add > 0) {
strncat(combined, values[i], remaining);
current_len += to_add;
}
}
}