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
This commit is contained in:
John Mark Bell 2006-04-15 13:59:53 +00:00
parent 3e54aab0d5
commit 5873160a8b

View File

@ -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;