}
seen_msg_fmt = 1;
}
+ if (want_msg_fmt && item->flags & AP_ERRORLOG_FLAG_REQUIRED) {
+ *err = "The '+' flag cannot be used in the main error log format";
+ return NULL;
+ }
}
if (want_msg_fmt && !seen_msg_fmt) {
sizeof(apr_array_header_t *));
}
- if (arg2 && *arg2) {
+ if (*arg2) {
apr_array_header_t **e;
e = (apr_array_header_t **) apr_array_push(conf->error_log_conn);
*e = parse_errorlog_string(cmd->pool, arg2, &err_string, 0);
sizeof(apr_array_header_t *));
}
- if (arg2 && *arg2) {
+ if (*arg2) {
apr_array_header_t **e;
e = (apr_array_header_t **) apr_array_push(conf->error_log_req);
*e = parse_errorlog_string(cmd->pool, arg2, &err_string, 0);
char *buf, int buflen)
{
apr_status_t status = info->status;
- int len = 0;
+ int len;
if (!status)
return 0;
if (status < APR_OS_START_EAIERR) {
- len += apr_snprintf(buf + len, buflen - len,
- "(%d)", status);
+ len = apr_snprintf(buf, buflen, "(%d)", status);
}
else if (status < APR_OS_START_SYSERR) {
- len += apr_snprintf(buf + len, buflen - len,
- "(EAI %d)", status - APR_OS_START_EAIERR);
+ len = apr_snprintf(buf, buflen, "(EAI %d)",
+ status - APR_OS_START_EAIERR);
}
else if (status < 100000 + APR_OS_START_SYSERR) {
- len += apr_snprintf(buf + len, buflen - len,
- "(OS %d)", status - APR_OS_START_SYSERR);
+ len = apr_snprintf(buf, buflen, "(OS %d)",
+ status - APR_OS_START_SYSERR);
}
else {
- len += apr_snprintf(buf + len, buflen - len,
- "(os 0x%08x)", status - APR_OS_START_SYSERR);
+ len = apr_snprintf(buf, buflen, "(os 0x%08x)",
+ status - APR_OS_START_SYSERR);
}
apr_strerror(status, buf + len, buflen - len);
len += strlen(buf + len);
id ^= tmp;
}
#if APR_HAS_THREADS
- if (c) {
+ {
apr_uintptr_t tmp2 = (apr_uintptr_t)c->current_thread;
tmp = tmp2;
tmp = tmp << 32;
}
#endif
- /*
- * The apr-util docs wrongly states encoded strings are not 0-terminated.
- * Let's be save and allocate an additional byte.
- */
- len = 1 + apr_base64_encode_len(sizeof(id));
+ len = apr_base64_encode_len(sizeof(id));
encoded = apr_palloc(r ? r->pool : c->pool, len);
apr_base64_encode(encoded, (char *)&id, sizeof(id));
- encoded[11] = '\0'; /* omit last char which is always '=' */
+
+ /*
+ * Only the first 11 chars are significant, the last (12th) char is
+ * always '='.
+ */
+ encoded[11] = '\0';
/* need to cast const away */
if (r) {