release: version 1.0.12 - Fix buffer corruption in dynbuf_append

- FIX: Copy null terminator during buffer reallocation (db->len + 1)
- This fixes JSON corruption that caused double commas in output

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Jacquin Antoine
2026-03-02 23:46:52 +01:00
parent dce1c813fc
commit 64c3e4acd8
4 changed files with 7 additions and 10 deletions

View File

@ -1,4 +1,4 @@
%global spec_version 1.0.11
%global spec_version 1.0.12
Name: mod_reqin_log
Version: %{spec_version}
@ -37,14 +37,14 @@ install -m 644 %{_pkgroot}/%{_sysconfdir}/httpd/conf.d/mod_reqin_log.conf %{buil
%doc %{_docdir}/%{name}
%changelog
* Mon Mar 02 2026 Developer <dev@example.com> - 1.0.11
* Mon Mar 02 2026 Developer <dev@example.com> - 1.0.12
- FIX: Fix buffer corruption in dynbuf_append by copying null terminator during reallocation
- PACKAGING: Mark config file as %config(noreplace) to preserve user modifications on upgrade
- FIX: Correct JSON string length parameters for query and fragment fields
- FIX: Add null-termination after buffer reallocation in dynbuf_append
- CHANGE: Remove unparsed_uri, fragment, and content_length fields from JSON output
- TEST: Update unit tests to match dynbuf_append fix
* Mon Mar 02 2026 Developer <dev@example.com> - 1.0.10
* Mon Mar 02 2026 Developer <dev@example.com> - 1.0.11
- FIX: Correct JSON string length parameters for query and fragment fields
- FIX: Add null-termination after buffer reallocation in dynbuf_append
- CHANGE: Remove unparsed_uri, fragment, and content_length fields from JSON output

View File

@ -213,8 +213,7 @@ static void dynbuf_append(dynbuf_t *db, const char *str, apr_size_t len)
if (db->len + len >= db->capacity) {
apr_size_t new_capacity = (db->len + len + 1) * 2;
char *new_data = apr_palloc(db->pool, new_capacity);
memcpy(new_data, db->data, db->len);
new_data[db->len] = '\0';
memcpy(new_data, db->data, db->len + 1); /* Copy including null terminator */
db->data = new_data;
db->capacity = new_capacity;
}

View File

@ -43,8 +43,7 @@ static void testbuf_append(testbuf_t *buf, const char *str, size_t len)
if (buf->len + len + 1 > buf->cap) {
size_t new_cap = (buf->len + len + 1) * 2;
char *new_data = apr_palloc(buf->pool, new_cap);
memcpy(new_data, buf->data, buf->len);
new_data[buf->len] = '\0';
memcpy(new_data, buf->data, buf->len + 1); /* Copy including null terminator */
buf->data = new_data;
buf->cap = new_cap;
}

View File

@ -84,8 +84,7 @@ static void dynbuf_append(dynbuf_t *db, const char *str, apr_size_t len)
if (db->len + len >= db->capacity) {
apr_size_t new_capacity = (db->len + len + 1) * 2;
char *new_data = apr_palloc(db->pool, new_capacity);
memcpy(new_data, db->data, db->len);
new_data[db->len] = '\0';
memcpy(new_data, db->data, db->len + 1); /* Copy including null terminator */
db->data = new_data;
db->capacity = new_capacity;
}