mirror of
https://github.com/apache/httpd.git
synced 2025-08-07 04:02:58 +03:00
Remove unnecessary apr_table_do() function casts
Function casts can cause hard-to-debug corruption issues if a declaration is accidentally changed to be incompatible. Luckily, most of the function casts for apr_table_do() calls are unnecessary. Remove them, and adjust the signatures for helpers that weren't taking void* as the first argument. The remaining helper that requires a cast is http_filter.c's form_header_field(), which is probably where many of these casts were copy-pasted from. I have left it as-is: it has other direct callers besides apr_table_do(), and it's already documented with warnings not to change the function signature. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1769192 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -311,15 +311,16 @@ static apr_status_t ap_session_set(request_rec * r, session_rec * z,
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
static int identity_count(int *count, const char *key, const char *val)
|
||||
static int identity_count(void *v, const char *key, const char *val)
|
||||
{
|
||||
int *count = v;
|
||||
*count += strlen(key) * 3 + strlen(val) * 3 + 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int identity_concat(char *buffer, const char *key, const char *val)
|
||||
static int identity_concat(void *v, const char *key, const char *val)
|
||||
{
|
||||
char *slider = buffer;
|
||||
char *slider = v;
|
||||
int length = strlen(slider);
|
||||
slider += length;
|
||||
if (length) {
|
||||
@@ -356,11 +357,9 @@ static apr_status_t session_identity_encode(request_rec * r, session_rec * z)
|
||||
char *expiry = apr_psprintf(z->pool, "%" APR_INT64_T_FMT, z->expiry);
|
||||
apr_table_setn(z->entries, SESSION_EXPIRY, expiry);
|
||||
}
|
||||
apr_table_do((int (*) (void *, const char *, const char *))
|
||||
identity_count, &length, z->entries, NULL);
|
||||
apr_table_do(identity_count, &length, z->entries, NULL);
|
||||
buffer = apr_pcalloc(r->pool, length + 1);
|
||||
apr_table_do((int (*) (void *, const char *, const char *))
|
||||
identity_concat, buffer, z->entries, NULL);
|
||||
apr_table_do(identity_concat, buffer, z->entries, NULL);
|
||||
z->encoded = buffer;
|
||||
return OK;
|
||||
|
||||
|
Reference in New Issue
Block a user