diff options
| -rw-r--r-- | plugins/check_http.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index f2f7a18a..6773e65b 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
| @@ -1099,7 +1099,19 @@ redir (char *pos, char *status_line) | |||
| 1099 | } | 1099 | } |
| 1100 | 1100 | ||
| 1101 | pos += i; | 1101 | pos += i; |
| 1102 | pos += strspn (pos, " \t\r\n"); | 1102 | pos += strspn (pos, " \t"); |
| 1103 | |||
| 1104 | /* | ||
| 1105 | * RFC 2616 (4.2): ``Header fields can be extended over multiple lines by | ||
| 1106 | * preceding each extra line with at least one SP or HT.'' | ||
| 1107 | */ | ||
| 1108 | for (; (i = strspn (pos, "\r\n")); pos += i) { | ||
| 1109 | pos += i; | ||
| 1110 | if (!(i = strspn (pos, " \t"))) { | ||
| 1111 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Empty redirect location%s\n"), | ||
| 1112 | display_html ? "</A>" : ""); | ||
| 1113 | } | ||
| 1114 | } | ||
| 1103 | 1115 | ||
| 1104 | url = realloc (url, strcspn (pos, "\r\n") + 1); | 1116 | url = realloc (url, strcspn (pos, "\r\n") + 1); |
| 1105 | if (url == NULL) | 1117 | if (url == NULL) |
