Commit 1b48ffc3 authored by Geoff Simmons's avatar Geoff Simmons

limit the size of user-supplied strings written to the log for error messages

parent 7eacc5df
......@@ -112,7 +112,7 @@ free_task_match(void *p)
FREE_OBJ(task_match);
}
#define ERR_PREFIX "match(\"%s\"): "
#define ERR_PREFIX "match(\"%.40s\"): "
static VCL_BOOL
match(VRT_CTX, vre2 * restrict vre2, VCL_STRING restrict subject,
......@@ -167,7 +167,7 @@ WS_Contains(struct ws * const restrict ws, const void * const restrict ptr,
assert((char *)ptr >= ws->s && (char *)(ptr + len) <= ws->e);
}
#define ERR_PREFIX "backref %ld, fallback \"%s\": "
#define ERR_PREFIX "backref %ld, fallback \"%.40s\": "
static VCL_STRING
backref(VRT_CTX, VCL_INT refnum, VCL_STRING fallback, void * const groups,
......@@ -212,7 +212,7 @@ backref(VRT_CTX, VCL_INT refnum, VCL_STRING fallback, void * const groups,
#undef ERR_PREFIX
#define ERR_PREFIX "namedref name=\"%s\", fallback=\"%s\": "
#define ERR_PREFIX "namedref name=\"%.40s\", fallback=\"%.40s\": "
static VCL_STRING
namedref(VRT_CTX, vre2 * restrict vre2, VCL_STRING name, VCL_STRING fallback,
......@@ -235,7 +235,8 @@ namedref(VRT_CTX, vre2 * restrict vre2, VCL_STRING name, VCL_STRING fallback,
#undef ERR_PREFIX
#define ERR_PREFIX "sub(text=\"%s\", rewrite=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX \
"sub(text=\"%.40s\", rewrite=\"%.40s\", fallback=\"%.40s\"): "
static VCL_STRING
sub(VRT_CTX, vre2 * restrict vre2, const int all, VCL_STRING text,
......@@ -270,7 +271,8 @@ sub(VRT_CTX, vre2 * restrict vre2, const int all, VCL_STRING text,
#undef ERR_PREFIX
#define ERR_PREFIX "extract(text=\"%s\", rewrite=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX \
"extract(text=\"%.40s\", rewrite=\"%.40s\", fallback=\"%.40s\"): "
static VCL_STRING
extract(VRT_CTX, vre2 * restrict vre2, VCL_STRING text, VCL_STRING rewrite,
......@@ -345,8 +347,8 @@ vmod_regex__init(const struct vrt_ctx *ctx, struct vmod_re2_regex **rep,
longest_match, max_mem, literal, never_nl, dot_nl,
never_capture, case_sensitive, perl_classes,
word_boundary, one_line)) != NULL) {
VERR(ctx, "Cannot compile '%s' in %s constructor: %s", pattern,
vcl_name, err);
VERR(ctx, "Cannot compile '%.40s' in %s constructor: %s",
pattern, vcl_name, err);
return;
}
if (! never_capture) {
......@@ -394,7 +396,7 @@ vmod_regex_match(const struct vrt_ctx *ctx, struct vmod_re2_regex *re,
return ret;
}
#define ERR_PREFIX "%s.backref(ref=%ld, fallback=\"%s\"): "
#define ERR_PREFIX "%s.backref(ref=%ld, fallback=\"%.40s\"): "
VCL_STRING
vmod_regex_backref(VRT_CTX, struct vmod_re2_regex *re, VCL_INT refnum,
......@@ -427,7 +429,7 @@ vmod_regex_backref(VRT_CTX, struct vmod_re2_regex *re, VCL_INT refnum,
#undef ERR_PREFIX
#define ERR_PREFIX "%s.namedref(name=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX "%s.namedref(name=\"%.40s\", fallback=\"%.40s\"): "
VCL_STRING
vmod_regex_namedref(VRT_CTX, struct vmod_re2_regex *re, VCL_STRING name,
......@@ -474,13 +476,13 @@ sub_method(VRT_CTX, const char * const restrict mname, const int all,
return "**SUB METHOD FAILED**";
}
if (text == NULL) {
VERR(ctx, "%s.%s(text=<undefined>, fallback=\"%s\"): "
VERR(ctx, "%s.%s(text=<undefined>, fallback=\"%.40s\"): "
"text is undefined", re->vcl_name, mname, fallback);
return fallback;
}
if (rewrite == NULL) {
VERR(ctx, "%s.%s(text=\"%s\", rewrite=<undefined>, "
"fallback=\"%s\"): rewrite is undefined", re->vcl_name,
VERR(ctx, "%s.%s(text=\"%.40s\", rewrite=<undefined>, "
"fallback=\"%.40s\"): rewrite is undefined", re->vcl_name,
mname, text, fallback);
return fallback;
}
......@@ -513,13 +515,13 @@ vmod_regex_extract(VRT_CTX, struct vmod_re2_regex *re, VCL_STRING text,
return "**EXTRACT METHOD FAILED**";
}
if (text == NULL) {
VERR(ctx, "%s.extract(text=<undefined>, fallback=\"%s\"): "
VERR(ctx, "%s.extract(text=<undefined>, fallback=\"%.40s\"): "
"text is undefined", re->vcl_name, fallback);
return fallback;
}
if (rewrite == NULL) {
VERR(ctx, "%s.extract(text=\"%s\", rewrite=<undefined>, "
"fallback=\"%s\"): rewrite is undefined", re->vcl_name,
VERR(ctx, "%s.extract(text=\"%.40s\", rewrite=<undefined>, "
"fallback=\"%.40s\"): rewrite is undefined", re->vcl_name,
text, fallback);
return fallback;
}
......@@ -583,7 +585,7 @@ vmod_set__fini(struct vmod_re2_set **setp)
FREE_OBJ(set);
}
#define ERR_PREFIX "%s.add(\"%s\"): "
#define ERR_PREFIX "%s.add(\"%.40s\"): "
VCL_VOID
vmod_set_add(VRT_CTX, struct vmod_re2_set *set, VCL_STRING pattern)
......@@ -606,8 +608,8 @@ vmod_set_add(VRT_CTX, struct vmod_re2_set *set, VCL_STRING pattern)
return;
}
if ((err = vre2set_add(set->set, pattern)) != NULL) {
VERR(ctx, ERR_PREFIX "Cannot compile '%s': %s", set->vcl_name,
pattern, pattern, err);
VERR(ctx, ERR_PREFIX "Cannot compile '%.40s': %s",
set->vcl_name, pattern, pattern, err);
return;
}
}
......@@ -644,7 +646,7 @@ vmod_set_compile(VRT_CTX, struct vmod_re2_set *set)
#undef ERR_PREFIX
#define ERR_PREFIX "%s.match(\"%s\"): "
#define ERR_PREFIX "%s.match(\"%.40s\"): "
VCL_BOOL
vmod_set_match(VRT_CTX, struct vmod_re2_set *set, VCL_STRING subject)
......@@ -673,7 +675,7 @@ vmod_set_match(VRT_CTX, struct vmod_re2_set *set, VCL_STRING subject)
/* Regex function interface */
#define ERR_PREFIX "re2.match(pattern=\"%s\", text=\"%s\"): "
#define ERR_PREFIX "re2.match(pattern=\"%.40s\", text=\"%.40s\"): "
VCL_BOOL
vmod_match(VRT_CTX, struct vmod_priv *priv, VCL_STRING pattern,
......@@ -734,7 +736,7 @@ vmod_match(VRT_CTX, struct vmod_priv *priv, VCL_STRING pattern,
#undef ERR_PREFIX
#define ERR_PREFIX "re2.backref(ref=%ld, fallback=\"%s\"): "
#define ERR_PREFIX "re2.backref(ref=%ld, fallback=\"%.40s\"): "
VCL_STRING
vmod_backref(VRT_CTX, struct vmod_priv *priv, VCL_INT refnum,
......@@ -774,7 +776,7 @@ vmod_backref(VRT_CTX, struct vmod_priv *priv, VCL_INT refnum,
#undef ERR_PREFIX
#define ERR_PREFIX "re2.namedref(name=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX "re2.namedref(name=\"%.40s\", fallback=\"%.40s\"): "
VCL_STRING
vmod_namedref(VRT_CTX, struct vmod_priv *priv, VCL_STRING name,
......@@ -811,7 +813,7 @@ vmod_namedref(VRT_CTX, struct vmod_priv *priv, VCL_STRING name,
#undef ERR_PREFIX
#define ERR_PREFIX "re2.%s(pattern=\"%s\", text=\"%s\", rewrite=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX "re2.%s(pattern=\"%.40s\", text=\"%.40s\", rewrite=\"%.40s\", fallback=\"%.40s\"): "
static VCL_STRING
sub_function(VRT_CTX, const char * const restrict fname, const int all,
......@@ -834,19 +836,19 @@ sub_function(VRT_CTX, const char * const restrict fname, const int all,
return "**SUB FUNCTION FAILED**";
}
if (pattern == NULL) {
VERR(ctx, "re2.%s(pattern=<undefined>, fallback=\"%s\"): "
VERR(ctx, "re2.%s(pattern=<undefined>, fallback=\"%.40s\"): "
"pattern is undefined", fname, fallback);
return fallback;
}
if (text == NULL) {
VERR(ctx, "re2.%s(pattern=\"%s\", text=<undefined>, "
"fallback=\"%s\"): text is undefined", fname, pattern,
"fallback=\"%.40s\"): text is undefined", fname, pattern,
fallback);
return fallback;
}
if (rewrite == NULL) {
VERR(ctx, "re2.%s(pattern=\"%s\", text=\"%s\", "
"rewrite=<undefined>, fallback=\"%s\"): "
VERR(ctx, "re2.%s(pattern=\"%.40s\", text=\"%.40s\", "
"rewrite=<undefined>, fallback=\"%.40s\"): "
"rewrite is undefined", fname, pattern, text, fallback);
return fallback;
}
......@@ -896,7 +898,7 @@ vmod_suball(VRT_CTX, VCL_STRING pattern, VCL_STRING text, VCL_STRING rewrite,
perl_classes, word_boundary, one_line);
}
#define ERR_PREFIX "re2.extract(pattern=\"%s\", text=\"%s\", rewrite=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX "re2.extract(pattern=\"%.40s\", text=\"%.40s\", rewrite=\"%.40s\", fallback=\"%.40s\"): "
VCL_STRING
vmod_extract(VRT_CTX, VCL_STRING pattern, VCL_STRING text, VCL_STRING rewrite,
......@@ -915,18 +917,20 @@ vmod_extract(VRT_CTX, VCL_STRING pattern, VCL_STRING text, VCL_STRING rewrite,
return "**EXTRACT FUNCTION FAILED**";
}
if (pattern == NULL) {
VERR(ctx, "re2.extract(pattern=<undefined>, fallback=\"%s\"): "
VERR(ctx,
"re2.extract(pattern=<undefined>, fallback=\"%.40s\"): "
"pattern is undefined", fallback);
return fallback;
}
if (text == NULL) {
VERR(ctx, "re2.extract(pattern=\"%s\", text=<undefined>, "
"fallback=\"%s\"): text is undefined", pattern, fallback);
VERR(ctx, "re2.extract(pattern=\"%.40s\", text=<undefined>, "
"fallback=\"%.40s\"): text is undefined", pattern,
fallback);
return fallback;
}
if (rewrite == NULL) {
VERR(ctx, "re2.extract(pattern=\"%s\", text=\"%s\", "
"rewrite=<undefined>, fallback=\"%s\"): "
VERR(ctx, "re2.extract(pattern=\"%.40s\", text=\"%.40s\", "
"rewrite=<undefined>, fallback=\"%.40s\"): "
"rewrite is undefined", pattern, text, fallback);
return fallback;
}
......@@ -936,8 +940,8 @@ vmod_extract(VRT_CTX, VCL_STRING pattern, VCL_STRING text, VCL_STRING rewrite,
case_sensitive, perl_classes, word_boundary,
one_line))
!= NULL) {
VERR(ctx, ERR_PREFIX "Cannot compile '%s': %s", pattern, text,
rewrite, fallback, pattern, err);
VERR(ctx, ERR_PREFIX "Cannot compile '%.40s': %s", pattern,
text, rewrite, fallback, pattern, err);
vre2_fini(&vre2);
return fallback;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment