captive_private_bcb_pin_object_get_ref():
authorshort <>
Wed, 8 Oct 2003 20:50:43 +0000 (20:50 +0000)
committershort <>
Wed, 8 Oct 2003 20:50:43 +0000 (20:50 +0000)
 - Fixes FAT32 bootability after any file written.
 - Invalide possibly only 'map'ped data as we need to re-read them.
 - Bugreported by Pavouk.

src/libcaptive/cc/privatebcbpin.c

index 9f7deef..a89c9c2 100644 (file)
@@ -291,6 +291,16 @@ CaptivePrivateBcbPinObject *captive_private_bcb_pin_object;
                g_object_ref(captive_private_bcb_pin_object);
                return captive_private_bcb_pin_object;
                }
+
+       /* Invalide possibly only 'map'ped data as we need to re-read them.
+        * Otherwise any file written by fastfat.sys of NT-5.1sp1 will corrupt
+        * the code+55AA of DOS boot sector (disk offset 0x0).
+        */
+       captive_shared_cache_map_flush(captive_shared_cache_map_object,
+                       offset,offset+PAGE_SIZE);
+       captive_shared_cache_map_set_data_invalid(captive_shared_cache_map_object,
+                       offset,offset+PAGE_SIZE);
+
        return captive_private_bcb_pin_object_new(captive_shared_cache_map_object,offset);
 }