| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
https://bugs.launchpad.net/qemu/+bug/1021649 is invalid, probably
caused by a Fedora ROM.
This updates commit 52d188e32fb8addb45bf926df07e34ab35898f85.
(cherry picked from commit 6e5a85bb9b6557bc337625a339728e23f5f2dd94)
|
|
|
|
| |
(cherry picked from commit 52d188e32fb8addb45bf926df07e34ab35898f85)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new API splits orderly close into a two-step process:
if (guestfs_shutdown (g) == -1) {
/* handle the error, eg. qemu error */
}
guestfs_close (g);
Note that the explicit shutdown step is only necessary in the case
where you have made changes to the disk image and want to handle write
errors. Read the documentation for further information.
This change also:
- deprecates guestfs_kill_subprocess
- turns guestfs_kill_subprocess into the same as guestfs_shutdown
- changes guestfish and other tools to call shutdown + close
where necessary (not for read-only tools)
- updates documentation
- updates examples
(cherry picked from commit ffbf1475f7ae7c462db289ad4834391469e72edd)
|
|
|
|
|
|
| |
Currently guestfs_close has no method to return an error indication,
so this commit simply prints the error on stderr.
(cherry picked from commit bcc4ffb52b9f4b5db7861682905ec32844f4603b)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The order is now:
- remove the handle from the list of handles
- send close trace message
- sync and shutdown qemu
- run user close callback
- free temporary directory
- free memory
This commit ought to be no functional change.
(cherry picked from commit fc3c6fff4b0a6ffeb75aa78b1d73241a14a03cd1)
|
|
|
|
|
| |
This is just a comment and has no functional effect.
(cherry picked from commit 0437a7905619b8370e25fbae1a3e6388c5277be9)
|
|
|
|
|
|
|
|
|
| |
Note that qemu treats these identically, so this change has
no functional effect.
(cherry picked from commit 1608ca182b094a1dbe22094f39a5e86f18f728b7)
Conflicts:
src/launch.c
|
|
|
|
|
|
| |
If the partition name we're about to return doesn't really exist,
then don't perform the mapping.
(cherry picked from commit ea8421c5d297698856a87c2cfe4a6b42796175a8)
|
|
|
|
|
|
|
|
|
| |
See https://bugzilla.redhat.com/show_bug.cgi?id=836573#c3
for an explanation.
Useful function 'is_partition' shows how to tell if a device name
represents a partition.
(cherry picked from commit 7eaa99994ebd354f4b078d4068695984989a907f)
|
|
|
|
|
|
|
| |
This is mostly code motion, although it also fixes a memory leak in an
extremely rare failure case, and it generally tidies up the existing
code.
(cherry picked from commit 47b8225b05a7e35411f954f61f3eb3115c5a9f45)
|
|
|
|
|
|
|
| |
This returns the number of whole block devices added. It is usually
simpler to call this than to list the devices and count them, which
is what we do in some places in the current codebase.
(cherry picked from commit 152b179a19e43fcb0baec65ea65d394ee1dba891)
|
|
|
|
|
|
|
|
| |
This returns the index of the device, eg. /dev/sdb => 1.
Or you can think of it as the order that the device was
added, or the index of the device in guestfs_list_devices.
(cherry picked from commit a9d7d044f552855a7ef78d953c0c2672e35bfc80)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stdin and stdout of the qemu process are aliased to g->fd:
g->fd[0] = wfd[1];
g->fd[1] = rfd[0];
However if the child exits early, then child_cleanup closes g->fd[0],
g->fd[1], AND the code at the cleanup1 label closes wfd[1], rfd[0],
resulting in a double-close.
Avoid this case by setting wfd[1], rfd[0] to -1. In the cleanup1
label, only close wfd[1], rfd[0] if they are not -1, and add the same
for g->fd[0], g->fd[1].
(cherry picked from commit c87956837e962072fff61edef5b18e55ad42d730)
|
|
|
|
| |
(cherry picked from commit 9e221e55b61e9f1cd0caf292ca609a4ca26f1d4d)
|
|
|
|
|
| |
This fixes commit ef5c02c6ee72eb8e127115923951777a2c2b8480.
(cherry picked from commit 11317b5d1243f3afc35f7abe8edc646f75813e36)
|
|
|
|
| |
(cherry picked from commit ef5c02c6ee72eb8e127115923951777a2c2b8480)
|
|
|
|
|
| |
These haven't been used since we switched over to virtio-serial.
(cherry picked from commit 78a515ec4a4e8650bd2e1ffc0bfbb97b9568306d)
|
|
|
|
| |
(cherry picked from commit fba81add94cde015afe8a65245cb4e60a1d3e6bf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(RHBZ#823821).
Change guestfs___first_line_of_file so that if the file is empty this
returns an empty string instead of an error. This is consistent with
the behaviour of this function in the case where the file starts with
a \n character, where it would previously have returned an empty
string.
Change all callers so that they handle this case.
Then change the hostname parsing code so that it doesn't give up when
/etc/HOSTNAME is empty, but falls through to the next alternative, and
similarly for /etc/hostname.
Thanks Todd Mummert for finding and diagnosing this bug.
(cherry picked from commit f00066d22b11bf40d0272f68565a2a27fea15627)
|
|
|
|
|
|
|
|
|
|
| |
parse_release_file should be used to set fs->product_name, instead of
calling guestfs___first_line_of_file directory, although currently the
two are equivalent.
This is code motion and fixes
commit b648b1813fc8e55db790435b5414d9be3ec765d2.
(cherry picked from commit cffb7fefc88a317f957785f6448fb24183c8c629)
|
|
|
|
|
|
| |
This is just code motion.
(cherry picked from commit 157f6fb18b7197f688ea761a4e52cd39287024f2)
|
|
|
|
|
|
|
|
|
| |
For ARM Versatile ("versatilepb") architecture, memsize must be set to
256 (megabytes) else the appliance is unable to boot. Previously
setting LIBGUESTFS_MEMSIZE=256 was not allowed.
Versatile Express has larger limits.
(cherry picked from commit a3718c6b8be9bcbfd1e753c699f030d1852bc26e)
|
|
|
|
|
|
|
|
|
|
| |
'./configure --disable-probes' will disable these probes. Otherwise
they are autodetected as before.
The <sys/sdt.h> produces lots of errors when you try to compile with
these probes enabled under clang, so it is necessary to provide a way
to disable them for clang users.
(cherry picked from commit a1680f03b7d38bf007d29ac23035e5af33736b0e)
|
|
|
|
|
|
| |
Make the introduction in the man page shorter and punchier, so it
leads readers directly to other pages of interest.
(cherry picked from commit 922052c70fdc66859c78bbc89a7817aad141862a)
|
|
|
|
|
| |
Since it describes the C library, it's better in the src/ directory.
(cherry picked from commit bb73cf0941ba9d34eb2ecf82d10ecb5fc5d2362d)
|
|
|
|
| |
(cherry picked from commit 5d6a323b9358bb01233681b784fa67414a5d2c6d)
|
|
|
|
| |
(cherry picked from commit 4542401fee7a141204baea98dcdc9fa557878f85)
|
|
|
|
|
|
| |
(RHBZ#811872).
(cherry picked from commit 96b6504b09461aeb6850bb2e7b870a0a4c2f5edf)
|
|
|
|
|
| |
Cherry picked from commit 307e8bc51a7416fa62ec43568cb8ba1876490a62
and modified to make it appropriate for the stable-1.16 branch.
|
|
|
|
|
|
| |
This caused the Python bindings (and probably others) to
segfault because guestfs_last_error(g) would return NULL.
(cherry picked from commit 0f7de2279a4af0bb259c9e36fca5e5c3aa835301)
|
|
|
|
|
|
| |
Recognize grub2 as a bootloader, and /bin being a symlink to
/usr/bin (ie. UsrMove feature added in Fedora 17+).
(cherry picked from commit 5c8a241e5cd119f436a050ddbbf7ea73f83ff8e4)
|
|
|
|
|
| |
Unclear if this is a real bug or not.
(cherry picked from commit 3d174b39bff6118bca3068c20ff874924cbfa1fd)
|
|
|
|
| |
(cherry picked from commit f2fae5151f33e933f4d574dc4324b7a8a2ee393c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously there was no programmatic way to tell if inspection APIs
were unavailable because they are not compiled in (because hivex isn't
around). This contrasts with daemon APIs where the availability is
covered by the guestfs_available API.
Change the inspection APIs so that when they are not available, the
last errno is set to ENOTSUP. (Note that ENOTSUP must be defined on
all POSIX platforms).
This allows programs to detect if they are using a version of
libguestfs that was compiled without support for inspection, without
having to parse error messages.
(cherry picked from commit c7dff02ccbb6bbe505c73df5d83bea8afdc188c3)
|
|
|
|
| |
(cherry picked from commit 974dffc6769b732befe85bcd8f614b9600927631)
|
|
|
|
| |
(cherry picked from commit 5749de39c2b44644662fb176784731bce851b828)
|
|
|
|
|
|
|
| |
When a Windows guest doesn't have a HKLM\SYSTEM\MountedDevices node,
inspection fails. However inspection should not completely fail just
because we cannot get the drive letter mapping from a guest.
(cherry picked from commit 91cede3465cd2496a01a89d5c8815df7c326c2ec)
|
|
|
|
|
|
|
|
|
| |
In two places, we were counting things in an array using an 'int'. In
theory, the int could overflow, so gcc determines this to be undefined
behaviour.
The fix is to use size_t or ssize_t instead.
(cherry picked from commit d66dd2260c724bdfe57a8595aac37c8e9173cee5)
|
|
|
|
| |
(cherry picked from commit 46d1280100b025de2a448331306e794d688748bd)
|
|
|
|
| |
(cherry picked from commit cd3f2986eee8dbadc8253d4c3462f7e214f1236d)
|
|
|
|
| |
(cherry picked from commit b8cdf6c2b9d12df6acbe295fd75c8c59c8b7eec1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
process.
If the parent process uses a pipe (or any fd, but pipes are a
particular problem), then the recovery process would hold open the
file descriptor(s) of the pipe, meaning that it could not be fully
closed in the parent. Because the recovery process doesn't use
exec(2), this wasn't avoidable even using FD_CLOEXEC.
Avoid this by closing all file descriptors when starting the recovery
process.
After discussion with Dan Berrange, he points out that it's also a
good idea to set signal handlers to the default after forking, so that
any signal handlers set up in the parent don't affect the child.
(cherry picked from commit f1f045adf8d00549dd3efa3619e1162f9004b61e)
|
|
|
|
|
|
|
|
|
| |
(RHBZ#801298).
Error: USE_AFTER_FREE:
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect_apps.c:392: freed_arg: "fclose" frees "fp".
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect_apps.c:404: deref_arg: Calling "fclose" dereferences freed pointer "fp".
(cherry picked from commit 270daae52b6a96b4d05cbe03e0b31a0b2e4ac1ae)
|
|
|
|
|
|
|
| |
Error: USE_AFTER_FREE:
/builddir/build/BUILD/libguestfs-1.16.5/src/dbdump.c:132: freed_arg: "pclose" frees "pp".
/builddir/build/BUILD/libguestfs-1.16.5/src/dbdump.c:142: deref_arg: Calling "pclose" dereferences freed pointer "pp".
(cherry picked from commit 3f3b08a6bc610ca0886e02972257dfcb633a9d40)
|
|
|
|
|
|
|
|
|
|
| |
Error: RESOURCE_LEAK:
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:894: open_fn: Calling opening function "open".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:894: var_assign: Assigning: "fd" = handle returned from "open(filename, 0)".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:903: noescape: Variable "fd" is not closed or saved in function "read".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:911: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:918: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
(cherry picked from commit d0453c02545c825810fec6e5874c55d7ac5ec678)
|
|
|
|
|
|
|
|
|
|
| |
Error: RESOURCE_LEAK:
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:1125: open_fn: Calling opening function "open".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:1125: var_assign: Assigning: "fd" = handle returned from "open(filename, 833, 438)".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:1133: noescape: Variable "fd" is not closed or saved in function "xwrite".
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:1146: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
/builddir/build/BUILD/libguestfs-1.16.5/src/proto.c:1173: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
(cherry picked from commit 855aaf414af3b8c8ca1f722a589fd251cc8317ee)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Error: NULL_RETURNS:
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:417: returned_null: Function "calloc" returns null (checked 67 out of 81 times).
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:417: var_assigned: Assigning: "ret" = null return value from "calloc".
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:418: dereference: Dereferencing a null pointer "ret".
[...]
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:374: returned_null: Function "calloc" returns null (checked 67 out of 81 times).
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:374: var_assigned: Assigning: "ret" = null return value from "calloc".
/builddir/build/BUILD/libguestfs-1.16.5/src/inspect.c:375: dereference: Dereferencing a null pointer "ret".
(cherry picked from commit 35d5be22b1c09c3a99b445f65453601ec25b9f60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove dead code; however only comment it out since if we change the
preceeding code we may need this line again.
Error: DEADCODE:
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:107: dead_error_condition: On this path, the condition "lvs" cannot be true.
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:54: const: After this line, the value of "lvs" is equal to 0.
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:91: const: After this line, the value of "lvs" is equal to 0.
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:54: assignment: Assigning: "lvs" = "NULL".
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:91: new_values: Noticing condition "lvs == NULL".
/builddir/build/BUILD/libguestfs-1.16.5/src/listfs.c:107: dead_error_line: Execution cannot reach this statement "guestfs___free_string_list(...".
(cherry picked from commit 109d3ad34aac8d50a1c02437928a64d9bad9f1a6)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Error: CHECKED_RETURN:
/builddir/build/BUILD/libguestfs-1.16.5/java/com_redhat_et_libguestfs_GuestFS.c:9552: example_assign: Assigning: "r" = return value from "guestfs_internal_autosync(g)".
/builddir/build/BUILD/libguestfs-1.16.5/java/com_redhat_et_libguestfs_GuestFS.c:9555: example_checked: "r" has its value checked in "r == -1".
/builddir/build/BUILD/libguestfs-1.16.5/ocaml/guestfs_c_actions.c:5584: example_assign: Assigning: "r" = return value from "guestfs_internal_autosync(g)".
/builddir/build/BUILD/libguestfs-1.16.5/ocaml/guestfs_c_actions.c:5586: example_checked: "r" has its value checked in "r == -1".
/builddir/build/BUILD/libguestfs-1.16.5/perl/Guestfs.xs:5990: example_assign: Assigning: "r" = return value from "guestfs_internal_autosync(g)".
/builddir/build/BUILD/libguestfs-1.16.5/perl/Guestfs.xs:5991: example_checked: "r" has its value checked in "r == -1".
/builddir/build/BUILD/libguestfs-1.16.5/python/guestfs-py.c:13702: example_assign: Assigning: "r" = return value from "guestfs_internal_autosync(g)".
/builddir/build/BUILD/libguestfs-1.16.5/python/guestfs-py.c:13707: example_checked: "r" has its value checked in "r == -1".
/builddir/build/BUILD/libguestfs-1.16.5/ruby/ext/guestfs/_guestfs.c:16000: example_assign: Assigning: "r" = return value from "guestfs_internal_autosync(g)".
/builddir/build/BUILD/libguestfs-1.16.5/ruby/ext/guestfs/_guestfs.c:16001: example_checked: "r" has its value checked in "r == -1".
/builddir/build/BUILD/libguestfs-1.16.5/src/guestfs.c:191: check_return: Calling function "guestfs_internal_autosync" without checking return value (as is done elsewhere 5 out of 6 times).
/builddir/build/BUILD/libguestfs-1.16.5/src/guestfs.c:191: unchecked_value: No check of the return value of "guestfs_internal_autosync(g)".
(cherry picked from commit 07a8c3c0c25974e0b9496966a7a1354be9ee844f)
|
|
|
|
| |
(cherry picked from commit 4d8ae8f5a2e309a6a518fdb0b6f65685aa9137e0)
|