1.1 --- a/librazor/razor.c Wed Jul 09 10:11:13 2008 -0400
1.2 +++ b/librazor/razor.c Thu Jan 08 13:51:07 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;