Properly initialize data_size for empty data segment
authorChip Black <bytex64@bytex64.net>
Mon, 3 Jun 2013 04:49:01 +0000 (23:49 -0500)
committerChip Black <bytex64@bytex64.net>
Mon, 3 Jun 2013 04:56:12 +0000 (23:56 -0500)
database/database.c

index 618c0d3..52ebe8c 100644 (file)
@@ -57,16 +57,16 @@ int blerg_remap_data(struct blerg *blerg) {
        if (blerg->data != NULL)
                munmap(blerg->data, blerg->data_size);
        fstat(blerg->data_fd, &st);
-       if (st.st_size == 0) {
+       blerg->data_size = st.st_size;
+       if (blerg->data_size == 0) {
                /* Can't map an empty data file. */
                return 1;
        }
-       blerg->data = (char *) mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, blerg->data_fd, 0);
+       blerg->data = (char *) mmap(NULL, blerg->data_size, PROT_READ, MAP_SHARED, blerg->data_fd, 0);
        if (blerg->data == MAP_FAILED) {
                perror("Could not remap data");
                return 0;
        }
-       blerg->data_size = st.st_size;
        return 1;
 }