+++ This bug was initially created as a clone of Bug #905322 +++ Description of problem: Command "hivex-commit" need a absolute path as its parameter, it's different with "hivex-open" which just need a relative path. "/WINDOWS/system32/config/software" is exist, and that folder is writable. it's like hivex-commit didn't correctly follow the link, its path is not start from "/sysroot/" Version-Release number of selected component (if applicable): ><fs> version major: 1 minor: 20 release: 1 extra: rhel=7,release=6.el7,libvirt How reproducible: 100% Steps to Reproduce: 1. launch libguestfs with a windows guest [root#] guestfish -a Win2003-32-hvm.raw ><fs> run ><fs> mount /dev/sda1 / 2. open a registry hive file with write model ><fs> hivex-open /WINDOWS/system32/config/software write:true 3. commit changes to the hive file with relative path, it's failed ><fs> hivex-commit /WINDOWS/system32/config/software libguestfs: error: hivex_commit: failed: No such file or directory 4. commit changes to the hive file with absolute path, it's passed ><fs> hivex-commit /sysroot/WINDOWS/system32/config/software Actual results: hivex-commit with relatived path failed Expected results: hivex-commit with relatived path can pass Additional info: --- Additional comment from RHEL Product and Program Management on 2013-01-29 02:27:34 EST --- Since this bug report was entered in bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release.
There's a clear bug in the code.
Fixed upstream by this commit: https://github.com/libguestfs/libguestfs/commit/be4a3d77c42148731a977b68aab8b454372518d7