From 5873160a8b72a61de0319ee789ce008a4ace403e Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 15 Apr 2006 13:59:53 +0000 Subject: Fix undersized buffer for reading port number into Detect no URLs for a host before adding host to database. svn path=/trunk/netsurf/; revision=2530 --- content/urldb.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'content') diff --git a/content/urldb.c b/content/urldb.c index 5a0260405..96a0ee67f 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -312,14 +312,21 @@ void urldb_load(const char *filename) } } - h = urldb_add_host(host); - if (!h) - die("Memory exhausted whilst loading URL file"); - + /* read number of URLs */ if (!fgets(s, MAXIMUM_URL_LENGTH, fp)) break; urls = atoi(s); + /* no URLs => try next host */ + if (urls == 0) { + LOG(("No URLs for '%s'", host)); + continue; + } + + h = urldb_add_host(host); + if (!h) + die("Memory exhausted whilst loading URL file"); + /* load the non-corrupt data */ for (i = 0; i < urls; i++) { struct path_data *p = NULL; @@ -354,7 +361,7 @@ void urldb_load(const char *filename) p = urldb_find_url(s); } } else { - char scheme[64], ports[6]; + char scheme[64], ports[10]; char url[64 + 3 + 256 + 6 + 4096 + 1]; unsigned int port; bool is_file = false; -- cgit v1.2.3