ignore <title> tags in <style> or <script> - grabtitle - stupid HTML title grabber
(HTM) git clone git://git.codemadness.org/grabtitle
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 074560f704de31a111ed6c73edbb1f9c84413aa7
(DIR) parent 3fae05df6ed35c258c73314f9daa07b92314e03e
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 13 Nov 2018 18:06:51 +0100
ignore <title> tags in <style> or <script>
seen in the wild web, this prevents an base64-encoded SVG XML inside a <style>
tag with a <title> element from being interpreted as a page title.
Diffstat:
M grabtitle.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/grabtitle.c b/grabtitle.c
@@ -15,18 +15,24 @@
#endif
static XMLParser parser;
-static int istitle;
+static int istitle, ignore;
static void
xmltagstart(XMLParser *p, const char *t, size_t tl)
{
- if (tl == 5 && !strcasecmp(t, "title"))
+ if ((tl == 6 && !strcasecmp(t, "script")) ||
+ (tl == 5 && !strcasecmp(t, "style")))
+ ignore = 1;
+ if (!ignore && tl == 5 && !strcasecmp(t, "title"))
istitle = 1;
}
static void
xmltagend(XMLParser *p, const char *t, size_t tl, int isshort)
{
+ if (ignore && ((tl == 6 && !strcasecmp(t, "script")) ||
+ (tl == 5 && !strcasecmp(t, "style"))))
+ ignore = 0;
if (istitle && tl == 5 && !strcasecmp(t, "title")) {
putchar('\n');
exit(0);