diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-08-08 18:52:23 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-08-17 13:05:22 +0100 |
commit | f5036236ffd4420c6d7e42a5738b2be7d1f6cc3c (patch) | |
tree | 02a120670845ae706f3859a750172bf44590bb1f /src/guestfs-internal.h | |
parent | 1f980d1b103bae48b4c27164a7588466ba9ad5cb (diff) | |
download | libguestfs-f5036236ffd4420c6d7e42a5738b2be7d1f6cc3c.tar.gz libguestfs-f5036236ffd4420c6d7e42a5738b2be7d1f6cc3c.tar.xz libguestfs-f5036236ffd4420c6d7e42a5738b2be7d1f6cc3c.zip |
inspection: Better checking for Windows root disks (RHBZ#729075).
Previously any disk that had /autoexec.bat or /boot.ini or /ntldr
would be picked up as a candidate for a Windows root disk. If further
checking could not find any systemroot (eg. /windows) then this would
result in complete failure of inspection.
In particular, this got confused by Hp_recovery partitions which have
/autoexec.bat, but don't have a systemroot in one of the usual places
(they have /MiniNT instead).
What we do now is to properly investigate all possible systemroot
places before deciding this is a Windows systemroot, so the subsequent
failure cannot occur.
(Thanks to lorimar for reporting this bug).
Cherry picked from commit 2c57305f72cd6181d1849ae6e1b892aa01c7f844
and backported to stable-1.10 branch.
Diffstat (limited to 'src/guestfs-internal.h')
-rw-r--r-- | src/guestfs-internal.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index 8d4d3009..7304a564 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -347,6 +347,8 @@ extern void guestfs___rollback_cmdline (guestfs_h *g, size_t pos); extern void guestfs___call_callbacks_void (guestfs_h *g, uint64_t event); extern void guestfs___call_callbacks_message (guestfs_h *g, uint64_t event, const char *buf, size_t buf_len); extern void guestfs___call_callbacks_array (guestfs_h *g, uint64_t event, const uint64_t *array, size_t array_len); +extern int guestfs___is_file_nocase (guestfs_h *g, const char *); +extern int guestfs___is_dir_nocase (guestfs_h *g, const char *); #if defined(HAVE_PCRE) && defined(HAVE_HIVEX) extern int guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, int is_block, int is_partnum); extern char *guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs, const char *filename, const char *basename, int64_t max_size); @@ -362,6 +364,7 @@ extern int guestfs___read_db_dump (guestfs_h *g, const char *dumpfile, void *opa extern int guestfs___check_installer_root (guestfs_h *g, struct inspect_fs *fs); extern int guestfs___check_linux_root (guestfs_h *g, struct inspect_fs *fs); extern int guestfs___check_freebsd_root (guestfs_h *g, struct inspect_fs *fs); +extern int guestfs___has_windows_systemroot (guestfs_h *g); extern int guestfs___check_windows_root (guestfs_h *g, struct inspect_fs *fs); #endif |