summaryrefslogtreecommitdiffstats
path: root/daemon
Commit message (Collapse)AuthorAgeFilesLines
* New API: md-stat.Richard W.M. Jones2012-03-201-0/+172
| | | | | This returns information about the underlying devices of an MD (software RAID) device.
* daemon: Add reply_with_error_errno function.Richard W.M. Jones2012-03-202-6/+7
| | | | | | This function allows you to pass an explicit errno back to the library. reply_with_error is redefined as a macro that calls reply_with_error_errno with errno == 0.
* New API: vgmeta: Download volume group metadata.Richard W.M. Jones2012-03-171-0/+88
|
* New APIs: isoinfo and isoinfo-device.Richard W.M. Jones2012-03-162-0/+293
| | | | | Get ISO primary volume descriptor information for either ISO devices or ISO files.
* daemon: Don't call reply_with_* after split_lines fails.Richard W.M. Jones2012-03-162-6/+2
| | | | | split_lines already sets reply_with_*, so calling it again would lose protocol synchronization.
* Use the new lvcreate-free API to create largest possible LVs.Richard W.M. Jones2012-03-151-1/+1
|
* New API: lvcreate-free: Create logical volume as % of free space.Richard W.M. Jones2012-03-151-0/+30
|
* New API: zero_free_space: zero free space in a filesystem.Richard W.M. Jones2012-03-151-0/+104
| | | | | | | | | | | | | | Add an API for doing what virt-sparsify was doing: freeing up free space in a filesystem. The current implementation is simple-minded: we create a file, fill it with zeroes until we run out of space, then delete the file. However the description leaves it open to do a better implementation, eg. using sparsification support that is currently being worked on in ext4 and qemu. The implementation also sends progress notifications, which is an advantage over the old 'dd' method.
* Use O_CLOEXEC / SOCK_CLOEXEC for almost all file descriptors.Richard W.M. Jones2012-03-1422-51/+57
| | | | | | | | | | | | | | | | | | | | | | | | The presumption is that all file descriptors should be created with the close-on-exec flag set. The only exception are file descriptors that we want passed through to exec'd subprocesses (mainly pipes and stdin/stdout/stderr). For open calls, we pass O_CLOEXEC as an extra flag, eg: fd = open ("foo", O_RDONLY|O_CLOEXEC); This is a Linux-ism, but using a macro we can easily make it portable. For sockets, similarly: sock = socket (..., SOCK_STREAM|SOCK_CLOEXEC, ...); For accepted sockets, we use the Linux accept4 system call which allows flags to be supplied, but we use the Gnulib 'accept4' module to make this portable. For dup, dup2, we use the Linux dup3 system call, and the Gnulib modules 'dup3' and 'cloexec'.
* daemon: When copy subprocess fails, print return code.Richard W.M. Jones2012-03-141-1/+1
| | | | Useful for debugging.
* daemon: labels: Memory leak in 'set_label'.Richard W.M. Jones2012-03-141-3/+7
| | | | This fixes commit d1711dae9dbd7f516469f88807604894c1304228.
* Replace 'int' with 'size_t' passim.Richard W.M. Jones2012-03-1313-66/+74
| | | | | Analyze all uses of 'int' in the code, and replace with 'size_t' where appropriate.
* daemon: Implement a growable strings buffer type.Richard W.M. Jones2012-03-1316-196/+209
| | | | | | | | | | | | | | | | | | | | | | | | Previously a lot of daemon code used three variables (a string list, 'int size' and 'int alloc') to track growable strings buffers. This commit implements a simple struct containing the same variables, but using size_t instead of int: struct stringsbuf { char **argv; size_t size; size_t alloc; }; Use it like this: DECLARE_STRINGSBUF (ret); //... if (add_string (&ret, str) == -1) return NULL; //... if (end_stringsbuf (&ret) == -1) return NULL; return ret.argv;
* daemon: Remove unused variables.Richard W.M. Jones2012-03-122-8/+0
|
* resize2fs: Run 'e2fsck -f' automatically if filesystem is not mounted.Richard W.M. Jones2012-03-093-0/+81
|
* e2fsck: Comment, whitespace, error message cleanups.Richard W.M. Jones2012-03-091-2/+2
|
* Revert "ext2: tweak the error returned message of resize2fs-M(BZ755729)"Richard W.M. Jones2012-03-091-4/+1
| | | | This reverts commit 0eaf06e673833bc25673d5c3d2487fffae310285.
* daemon: glob: Initialize glob buffer (quiet Coverity warning).Richard W.M. Jones2012-03-081-1/+1
| | | | | | | | | Error: UNINIT: /builddir/build/BUILD/libguestfs-1.16.5/daemon/glob.c:32: var_decl: Declaring variable "buf" without initializer. /builddir/build/BUILD/libguestfs-1.16.5/daemon/glob.c:36: uninit_use_in_call: Using uninitialized value "buf.gl_offs" when calling "rpl_glob". /builddir/build/BUILD/libguestfs-1.16.5/gnulib/lib/glob.c:557: read_parm_fld: Reading a parameter field. /builddir/build/BUILD/libguestfs-1.16.5/daemon/glob.c:36: uninit_use_in_call: Using uninitialized value "buf.gl_pathc" when calling "rpl_glob". /builddir/build/BUILD/libguestfs-1.16.5/gnulib/lib/glob.c:557: read_parm_fld: Reading a parameter field.
* comment: Note time-of-check to time-of-use race found by Coverity.Richard W.M. Jones2012-03-081-0/+6
|
* daemon: inotify: Check event->len in inotify struct is reasonable.Richard W.M. Jones2012-03-081-0/+7
| | | | | | | | | | | | | | The Coverity error is this (which I think is wrong): Error: TAINTED_SCALAR: /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:211: tainted_data_argument: Calling function "read" taints argument "inotify_buf". /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:232: var_assign_var: Assigning: "event" = "(struct inotify_event *)&inotify_buf[n]". Both are now tainted. /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:258: lower_bounds: Checking lower bounds of unsigned scalar "event->len" by "event->len > 0U". /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:272: var_assign_var: Compound assignment involving tainted variable "16UL + event->len" to variable "n" taints "n". /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:228: lower_bounds: Checking lower bounds of unsigned scalar "n" by "n < inotify_posn". /builddir/build/BUILD/libguestfs-1.16.5/daemon/inotify.c:281: tainted_data: Using tainted variable "n" as an index into an array "inotify_buf". Adding a sanity check of event->len is prudent.
* daemon: debug: Close fd along error path (found by Coverity).Richard W.M. Jones2012-03-081-0/+1
| | | | | | | | Error: RESOURCE_LEAK: /builddir/build/BUILD/libguestfs-1.16.5/daemon/debug.c:469: open_fn: Calling opening function "open". /builddir/build/BUILD/libguestfs-1.16.5/daemon/debug.c:469: var_assign: Assigning: "fd" = handle returned from "open("/proc/sys/kernel/core_pattern", 1)". /builddir/build/BUILD/libguestfs-1.16.5/daemon/debug.c:474: noescape: Variable "fd" is not closed or saved in function "write". /builddir/build/BUILD/libguestfs-1.16.5/daemon/debug.c:476: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
* daemon: upload: Close fd along error path (found by Coverity).Richard W.M. Jones2012-03-081-0/+1
| | | | | | | | Error: RESOURCE_LEAK: /builddir/build/BUILD/libguestfs-1.16.5/daemon/upload.c:225: open_fn: Calling opening function "open". /builddir/build/BUILD/libguestfs-1.16.5/daemon/upload.c:225: var_assign: Assigning: "fd" = handle returned from "open(filename, 0)". /builddir/build/BUILD/libguestfs-1.16.5/daemon/upload.c:233: noescape: Variable "fd" is not closed or saved in function "lseek". /builddir/build/BUILD/libguestfs-1.16.5/daemon/upload.c:235: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
* daemon: 9p: Close fd along error paths (found by Coverity).Richard W.M. Jones2012-03-081-0/+2
| | | | | | | | | Error: RESOURCE_LEAK: /builddir/build/BUILD/libguestfs-1.16.5/daemon/9p.c:130: open_fn: Calling opening function "open". /builddir/build/BUILD/libguestfs-1.16.5/daemon/9p.c:130: var_assign: Assigning: "fd" = handle returned from "open(filename, 0)". /builddir/build/BUILD/libguestfs-1.16.5/daemon/9p.c:142: leaked_handle: Handle variable "fd" going out of scope leaks the handle. /builddir/build/BUILD/libguestfs-1.16.5/daemon/9p.c:149: noescape: Variable "fd" is not closed or saved in function "read". /builddir/build/BUILD/libguestfs-1.16.5/daemon/9p.c:153: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
* New API: set-label, for setting a label on any filesystem.Richard W.M. Jones2012-02-274-25/+105
| | | | | | Currently only ext2/3/4 and (newly) NTFS are supported. This change also deprecates set-e2label.
* New APIs: ntfsclone-in, ntfsclone-out.Richard W.M. Jones2012-02-272-0/+213
|
* New API: ntfsfix for fixing problems on NTFS.Richard W.M. Jones2012-02-271-0/+29
| | | | Note this is not a "chkdsk" equivalent tool.
* daemon: Return error properly when user tries to mount appliance root ↵Richard W.M. Jones2012-02-131-1/+4
| | | | | | | | | | | | (RHBZ#789960). In the case where the caller attempts to mount the "hidden" appliance root device (eg. /dev/vdb if /dev/vda is the only normal block device added), we were calling reply_with_error but not actually returning immediately, resulting in protocol desynchronization. This commit fixes this obvious mistake.
* wipefs: Include "optgroups.h".Richard W.M. Jones2012-02-101-0/+1
| | | | This fixes commit a2b3e0900ee14e5a49d526c24e22edefc3030f99.
* NEW API: add a new api wipefsWanlong Gao2012-02-101-0/+24
| | | | | | | Add the new api wipefs to erase the filesystem signatures on a device but now erase any data. Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
* New API: llz: This runs ls -laZ and is useful for showing SELinux contexts.Richard W.M. Jones2012-02-091-0/+26
|
* findfs: Remove /run/blkid/blkid.tab.Richard W.M. Jones2012-02-081-0/+1
| | | | | See this util-linux commit: https://github.com/karelzak/util-linux/commit/b82590ad46acf9fe8d332b53875e24c3c31e2482
* blockdev, parted: Call udev_settle before and after commands. (RHBZ#769304)Richard W.M. Jones2012-02-062-52/+115
| | | | | | | See comments in the code for details. This is an alternate fix to commit a9c8123c72db47bcab8dd738e8d5256a9ae87f11.
* Revert "daemon: Run udev_settle after pwrite-device finishes."Richard W.M. Jones2012-02-062-17/+4
| | | | This reverts commit a9c8123c72db47bcab8dd738e8d5256a9ae87f11.
* Clarify the error message when unavailable functions are called (RHBZ#679737).Richard W.M. Jones2012-02-017-134/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Callers are supposed to use the availability API to check for functions that may not be available in particular builds of libguestfs. If they don't do this, currently they tend to get obscure error messages, eg: libguestfs: error: zerofree: /dev/vda1: zerofree: No such file or directory This commit changes the error message to explain what callers ought to be doing instead: libguestfs: error: zerofree: feature 'zerofree' is not available in this build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page for how to check for the availability of features. This patch makes the stubs check for availability. The stub code changes to: static void zerofree_stub (XDR *xdr_in) { [...] /* The caller should have checked before calling this. */ if (! optgroup_zerofree_available ()) { reply_with_error ("feature '%s' is not available in this\n" "build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page for\n" "how to check for the availability of features.", "zerofree"); goto done; } [...]
* daemon: Fix crash in aug-defnode (RHBZ#785668).Richard W.M. Jones2012-01-301-6/+15
|
* daemon: Fix use-after-free in case-insensitive-path (found by valgrind).Richard W.M. Jones2012-01-241-38/+81
| | | | | | | | | This commit tidies up the code by splitting out the path element-searching code into a separate function. Valgrind found that 'closedir' frees the 'struct dirent *', which wasn't immediately obvious. So now we do the 'closedir' after all operations which touch 'd->d_name'.
* daemon: Fix leaking error message (found by valgrind).Richard W.M. Jones2012-01-241-0/+1
|
* daemon: Close inotify handle on exit.Richard W.M. Jones2012-01-241-0/+11
|
* daemon: Close augeas handle on exit.Richard W.M. Jones2012-01-241-0/+11
|
* daemon: Fix leak of strings in md-detail (found by valgrind).Richard W.M. Jones2012-01-241-2/+2
|
* daemon: md: Whitespace changes, and use size_t for i instead of pointer.Richard W.M. Jones2012-01-241-20/+23
| | | | This is just a code clean-up with no functional change.
* daemon: Fix leak of strings in blkid (found by valgrind).Richard W.M. Jones2012-01-241-2/+2
|
* daemon: blkid: Whitespace changes, and use size_t for i instead of pointer.Richard W.M. Jones2012-01-241-18/+21
| | | | This is just a code clean-up with no functional change.
* daemon: Return value from write syscall is ssize_t, not int.Richard W.M. Jones2012-01-241-1/+1
|
* daemon: Don't leak 'cmdline' (found by valgrind).Richard W.M. Jones2012-01-241-0/+2
|
* daemon: Length of message is a 32 bit unsigned quantity.Richard W.M. Jones2012-01-241-2/+2
|
* daemon: Fix use of uninitialized stack data (found by valgrind).Richard W.M. Jones2012-01-241-0/+2
| | | | | This uninitialized data was also sent over the protocol, potentially being a serious information leak.
* daemon: Fix memory leak in 'initrd-cat' (found by valgrind).Richard W.M. Jones2012-01-241-0/+2
|
* debian: Debian 6 blkid has -p but not -i.Richard W.M. Jones2012-01-231-30/+62
| | | | | | Fix the existing test to work correctly in this case. Other cleanups.
* daemon: Move internal-autosync function to new file internal.c.Richard W.M. Jones2012-01-213-18/+47
| | | | This is just code motion.