From 217e59aebefb1a0a17fd713a8e38c2563cda8c8c Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 14 Jun 2006 21:47:23 +0000 Subject: Fix off-by-one error in search routines which caused crashes with (invalid) host names ending in a '.'. svn path=/trunk/netsurf/; revision=2618 --- content/urldb.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'content') diff --git a/content/urldb.c b/content/urldb.c index e9bbb9012..f150aeb25 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -2056,13 +2056,13 @@ int urldb_search_match_string(const struct host_part *a, return strcasecmp(a->part, b); } - end = b + strlen(b); + end = b + strlen(b) + 1; while (b < end && a && a != &db_root) { dot = strchr(b, '.'); if (!dot) { /* last segment */ - dot = end; + dot = end - 1; } /* Compare strings (length limited) */ @@ -2119,13 +2119,13 @@ int urldb_search_match_prefix(const struct host_part *a, return strncasecmp(a->part, b, strlen(b)); } - end = b + strlen(b); + end = b + strlen(b) + 1; while (b < end && a && a != &db_root) { dot = strchr(b, '.'); if (!dot) { /* last segment */ - dot = end; + dot = end - 1; } /* Compare strings (length limited) */ @@ -2134,7 +2134,7 @@ int urldb_search_match_prefix(const struct host_part *a, return ret; /* The strings matched */ - if (dot < end) { + if (dot < end - 1) { /* Consider segment lengths only in the case * where the prefix contains segments */ plen = strlen(a->part); -- cgit v1.2.3