return NULL from psl_load_file() if the file could not be read.
This commit is contained in:
parent
4e674ccbae
commit
c07ea9d0a0
|
@ -275,12 +275,12 @@ psl_ctx_t *psl_load_file(const char *fname)
|
||||||
if (!(psl = calloc(1, sizeof(psl_ctx_t))))
|
if (!(psl = calloc(1, sizeof(psl_ctx_t))))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if ((fp = fopen(fname, "r"))) {
|
||||||
// as of 02.11.2012, the list at http://publicsuffix.org/list/ contains ~6000 rules and 40 exceptions.
|
// as of 02.11.2012, the list at http://publicsuffix.org/list/ contains ~6000 rules and 40 exceptions.
|
||||||
// as of 19.02.2014, the list at http://publicsuffix.org/list/ contains ~6500 rules and 19 exceptions.
|
// as of 19.02.2014, the list at http://publicsuffix.org/list/ contains ~6500 rules and 19 exceptions.
|
||||||
psl->suffixes = _vector_alloc(8*1024, _suffix_compare);
|
psl->suffixes = _vector_alloc(8*1024, _suffix_compare);
|
||||||
psl->suffix_exceptions = _vector_alloc(64, _suffix_compare);
|
psl->suffix_exceptions = _vector_alloc(64, _suffix_compare);
|
||||||
|
|
||||||
if ((fp = fopen(fname, "r"))) {
|
|
||||||
while ((linep = fgets(buf, sizeof(buf), fp))) {
|
while ((linep = fgets(buf, sizeof(buf), fp))) {
|
||||||
while (isspace(*linep)) linep++; // ignore leading whitespace
|
while (isspace(*linep)) linep++; // ignore leading whitespace
|
||||||
if (!*linep) continue; // skip empty lines
|
if (!*linep) continue; // skip empty lines
|
||||||
|
@ -312,8 +312,10 @@ psl_ctx_t *psl_load_file(const char *fname)
|
||||||
_vector_sort(psl->suffix_exceptions);
|
_vector_sort(psl->suffix_exceptions);
|
||||||
_vector_sort(psl->suffixes);
|
_vector_sort(psl->suffixes);
|
||||||
|
|
||||||
} else
|
} else {
|
||||||
fprintf(stderr, _("Failed to open PSL file '%s'\n"), fname);
|
free(psl);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return psl;
|
return psl;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue