Properly initialize data_size for empty data segment
   
    
     	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;
 }