Commit 385be3f8 authored by Luis R. Rodriguez's avatar Luis R. Rodriguez

crda: explicitly close file descriptor and munmap() on failures

Just do this explicitly.
Signed-off-by: 's avatarLuis R. Rodriguez <mcgrof@do-not-panic.com>
parent 120c2ea6
......@@ -307,33 +307,37 @@ reglib_get_rd_alpha2(const char *alpha2, const char *file)
if (fd < 0)
return NULL;
if (fstat(fd, &stat))
if (fstat(fd, &stat)) {
close(fd);
return NULL;
}
dblen = stat.st_size;
db = mmap(NULL, dblen, PROT_READ, MAP_PRIVATE, fd, 0);
if (db == MAP_FAILED)
if (db == MAP_FAILED) {
close(fd);
return NULL;
}
header = crda_get_file_ptr(db, dblen, sizeof(*header), 0);
if (ntohl(header->magic) != REGDB_MAGIC)
return NULL;
goto out;
if (ntohl(header->version) != REGDB_VERSION)
return NULL;
goto out;
siglen = ntohl(header->signature_length);
/* adjust dblen so later sanity checks don't run into the signature */
dblen -= siglen;
if (dblen <= (int)sizeof(*header))
return NULL;
goto out;
/* verify signature */
if (!crda_verify_db_signature(db, dblen, siglen))
return NULL;
goto out;
num_countries = ntohl(header->reg_country_num);
countries = crda_get_file_ptr(db, dblen,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment