X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=common%2Ffile.c;h=3532e4950385a75589d8424db843b15a1ac16615;hb=6b977cdc115af3cebdf488f27d106788e8bd9461;hp=dd6fc9157d10fe4117c6dab3490351a73c43d5a9;hpb=193694fdba386a89b4b2a83ce803764302995e89;p=apps%2Fpfixtools.git diff --git a/common/file.c b/common/file.c index dd6fc91..3532e49 100644 --- a/common/file.c +++ b/common/file.c @@ -16,17 +16,20 @@ /* products derived from this software without specific prior written */ /* permission. */ /* */ -/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND */ -/* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */ -/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ -/* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS */ -/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR */ -/* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF */ -/* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS */ -/* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */ -/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) */ -/* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF */ -/* THE POSSIBILITY OF SUCH DAMAGE. */ +/* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS */ +/* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ +/* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY */ +/* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */ +/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS */ +/* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */ +/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, */ +/* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */ +/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ +/* POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* Copyright (c) 2006-2008 the Authors */ +/* see AUTHORS and source files for details */ /******************************************************************************/ /* @@ -58,7 +61,6 @@ void file_map_delete(file_map_t **map) bool file_map_open(file_map_t *map, const char *file, bool memlock) { - struct stat st; int fd; fd = open(file, O_RDONLY, 0000); @@ -67,13 +69,13 @@ bool file_map_open(file_map_t *map, const char *file, bool memlock) return false; } - if (fstat(fd, &st) < 0) { + if (fstat(fd, &map->st) < 0) { UNIXERR("fstat"); close(fd); return false; } - map->map = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + map->map = mmap(NULL, map->st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); if (map->map == MAP_FAILED) { UNIXERR("mmap"); close(fd); @@ -82,8 +84,8 @@ bool file_map_open(file_map_t *map, const char *file, bool memlock) } close(fd); - map->end = map->map + st.st_size; - map->locked = memlock && mlock(map->map, st.st_size) == 0; + map->end = map->map + map->st.st_size; + map->locked = memlock && mlock(map->map, map->st.st_size) == 0; return true; }