librazor/razor.c
changeset 323 3b24a0bd41ee
parent 318 829d6711b316
child 334 52871d4b9265
     1.1 --- a/librazor/razor.c	Wed Jul 09 10:11:13 2008 -0400
     1.2 +++ b/librazor/razor.c	Wed Jan 07 17:17:10 2009 +0000
     1.3 @@ -27,7 +27,6 @@
     1.4  #include <string.h>
     1.5  #include <sys/types.h>
     1.6  #include <sys/stat.h>
     1.7 -#include <sys/mman.h>
     1.8  #include <unistd.h>
     1.9  #include <fcntl.h>
    1.10  #include <errno.h>
    1.11 @@ -101,18 +100,13 @@
    1.12  			const char *filename)
    1.13  {
    1.14  	struct razor_set_section *s, *sections;
    1.15 -	struct stat stat;
    1.16  	struct array *array;
    1.17  	const char *pool;
    1.18 -	int fd, i;
    1.19 +	int i;
    1.20  
    1.21 -	fd = open(filename, O_RDONLY);
    1.22 -	if (fstat(fd, &stat) < 0)
    1.23 +	*header = razor_file_get_contents(filename, header_size);
    1.24 +	if (!*header)
    1.25  		return -1;
    1.26 -	*header = mmap(NULL, stat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
    1.27 -	if (*header == MAP_FAILED)
    1.28 -		return -1;
    1.29 -	*header_size = stat.st_size;
    1.30  
    1.31  	sections = (void *) *header + sizeof **header;
    1.32  	pool = (void *) sections + (*header)->num_sections * sizeof *sections;
    1.33 @@ -131,7 +125,6 @@
    1.34  		array->size = s->size;
    1.35  		array->alloc = s->size;
    1.36  	}
    1.37 -	close(fd);
    1.38  
    1.39  	return 0;
    1.40  }
    1.41 @@ -180,7 +173,7 @@
    1.42  	assert (set != NULL);
    1.43  
    1.44  	if (set->header) {
    1.45 -		munmap(set->header, set->header_size);
    1.46 +		razor_file_free_contents(set->header, set->header_size);
    1.47  	} else {
    1.48  		for (i = 0; i < ARRAY_SIZE(razor_sections); i++) {
    1.49  			a = (void *) set + razor_sections[i].offset;
    1.50 @@ -189,7 +182,8 @@
    1.51  	}
    1.52  
    1.53  	if (set->details_header) {
    1.54 -		munmap(set->details_header, set->details_header_size);
    1.55 +		razor_file_free_contents(set->details_header,
    1.56 +			set->details_header_size);
    1.57  	} else {
    1.58  		for (i = 0; i < ARRAY_SIZE(razor_details_sections); i++) {
    1.59  			a = (void *) set + razor_details_sections[i].offset;
    1.60 @@ -198,7 +192,8 @@
    1.61  	}
    1.62  
    1.63  	if (set->files_header) {
    1.64 -		munmap(set->files_header, set->files_header_size);
    1.65 +		razor_file_free_contents(set->files_header,
    1.66 +			set->files_header_size);
    1.67  	} else {
    1.68  		for (i = 0; i < ARRAY_SIZE(razor_files_sections); i++) {
    1.69  			a = (void *) set + razor_files_sections[i].offset;