diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/urldb.c | 17 |
1 files changed, 12 insertions, 5 deletions
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; |