diff --git a/plugins/check_http.c b/plugins/check_http.c
index f2f7a18a25993870a6c52ec2ef00355c85042dbb..6773e65bcc47c052764461dfbf3b6bc78d1fb32a 100644 (file)
--- a/plugins/check_http.c
+++ b/plugins/check_http.c
}
pos += i;
- pos += strspn (pos, " \t\r\n");
+ pos += strspn (pos, " \t");
+
+ /*
+ * RFC 2616 (4.2): ``Header fields can be extended over multiple lines by
+ * preceding each extra line with at least one SP or HT.''
+ */
+ for (; (i = strspn (pos, "\r\n")); pos += i) {
+ pos += i;
+ if (!(i = strspn (pos, " \t"))) {
+ die (STATE_UNKNOWN, _("HTTP UNKNOWN - Empty redirect location%s\n"),
+ display_html ? "</A>" : "");
+ }
+ }
url = realloc (url, strcspn (pos, "\r\n") + 1);
if (url == NULL)