Skip to content

Commit de1cf63

Browse files
committed
Fix GCC warning in msc_headers_to_buffer():
In file included from /usr/include/stdio.h:970, from modsecurity.h:18, from msc_util.c:15: In function 'sprintf', inlined from 'msc_headers_to_buffer' at msc_util.c:2331:17: /usr/include/bits/stdio2.h:30:10: warning: '__sprintf_chk' argument 5 overlaps destination object 'buffer' [-Wrestrict] 30 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ msc_util.c: In function 'msc_headers_to_buffer': msc_util.c:2306:64: note: destination object referenced by 'restrict'-qualified argument 1 was declared here 2306 | int msc_headers_to_buffer(const apr_array_header_t *arr, char *buffer, | ~~~~~~^~~~~~
1 parent 9d9a727 commit de1cf63

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

apache2/msc_util.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2310,9 +2310,11 @@ int msc_headers_to_buffer(const apr_array_header_t *arr, char *buffer,
23102310
int write_to_buffer = 0;
23112311
int i = 0;
23122312
const apr_table_entry_t *te = NULL;
2313+
char *ptr = NULL;
23132314

23142315
if (buffer != NULL && buffer_length > 0) {
23152316
write_to_buffer = 1;
2317+
ptr = buffer;
23162318
}
23172319

23182320
te = (apr_table_entry_t *)arr->elts;
@@ -2328,7 +2330,9 @@ int msc_headers_to_buffer(const apr_array_header_t *arr, char *buffer,
23282330
goto not_enough_memory;
23292331
}
23302332

2331-
sprintf(buffer, "%s%s: %s\n", buffer, key, value);
2333+
assert(ptr && ptr < buffer + buffer_length);
2334+
sprintf(ptr, "%s: %s\n", key, value);
2335+
ptr = buffer + headers_length; /* for the next entry. */
23322336
}
23332337
}
23342338

0 commit comments

Comments
 (0)