Write a postlicyd(8) man page.
[apps/pfixtools.git] / common / file.c
index dd6fc91..3532e49 100644 (file)
 /*     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;
 }