[Pkg-libvirt-commits] [libguestfs] 06/26: Annual scavange to find mixed declarations and statements.
Hilko Bengen
bengen at moszumanska.debian.org
Thu Mar 20 23:06:09 UTC 2014
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag upstream/1.25.46
in repository libguestfs.
commit 19dcc0de1fd4988ff53d152297480462453e196b
Author: Richard W.M. Jones <rjones at redhat.com>
Date: Mon Mar 17 19:54:16 2014 +0000
Annual scavange to find mixed declarations and statements.
Hopefully this is just code motion.
---
daemon/9p.c | 4 +-
daemon/base64.c | 3 +-
daemon/blkid.c | 6 ++-
daemon/btrfs.c | 17 +++---
generator/c.ml | 24 ++++++---
src/alloc.c | 3 +-
src/command.c | 3 +-
src/errors.c | 8 +--
src/filearch.c | 16 ++++--
src/fuse.c | 146 ++++++++++++++++++++++++--------------------------
src/inspect-apps.c | 28 +++++-----
src/inspect-fs-unix.c | 42 ++++++++++-----
src/inspect.c | 47 +++++++++-------
src/private-data.c | 8 +--
14 files changed, 198 insertions(+), 157 deletions(-)
diff --git a/daemon/9p.c b/daemon/9p.c
index 024ac24..fefbb71 100644
--- a/daemon/9p.c
+++ b/daemon/9p.c
@@ -64,8 +64,10 @@ do_list_9p (void)
}
while (1) {
+ struct dirent *d;
+
errno = 0;
- struct dirent *d = readdir (dir);
+ d = readdir (dir);
if (d == NULL) break;
if (STRPREFIX (d->d_name, "virtio")) {
diff --git a/daemon/base64.c b/daemon/base64.c
index 04b29fd..35a5d2f 100644
--- a/daemon/base64.c
+++ b/daemon/base64.c
@@ -46,6 +46,7 @@ do_base64_in (const char *file)
int err, r;
FILE *fp;
CLEANUP_FREE char *cmd = NULL;
+ int fd;
if (asprintf_nowarn (&cmd, "%s -d -i > %R", str_base64, file) == -1) {
err = errno;
@@ -70,7 +71,7 @@ do_base64_in (const char *file)
/* The semantics of fwrite are too undefined, so write to the
* file descriptor directly instead.
*/
- int fd = fileno (fp);
+ fd = fileno (fp);
r = receive_file (write_cb, &fd);
if (r == -1) { /* write error */
diff --git a/daemon/blkid.c b/daemon/blkid.c
index d52f6c5..83ff355 100644
--- a/daemon/blkid.c
+++ b/daemon/blkid.c
@@ -35,6 +35,7 @@ get_blkid_tag (const char *device, const char *tag)
char *out;
CLEANUP_FREE char *err = NULL;
int r;
+ size_t len;
r = commandr (&out, &err,
str_blkid,
@@ -59,7 +60,7 @@ get_blkid_tag (const char *device, const char *tag)
}
/* Trim trailing \n if present. */
- size_t len = strlen (out);
+ len = strlen (out);
if (len > 0 && out[len-1] == '\n')
out[len-1] = '\0';
@@ -157,13 +158,14 @@ blkid_with_p_i_opt (const char *device)
* PART_ENTRY_DISK=8:0
*/
for (i = 0; lines[i] != NULL; ++i) {
+ char *eq;
char *line = lines[i];
/* Skip blank lines (shouldn't happen) */
if (line[0] == '\0') continue;
/* Split the line in 2 at the equals sign */
- char *eq = strchr (line, '=');
+ eq = strchr (line, '=');
if (eq) {
*eq = '\0'; eq++;
diff --git a/daemon/btrfs.c b/daemon/btrfs.c
index a0c1542..7a4d43d 100644
--- a/daemon/btrfs.c
+++ b/daemon/btrfs.c
@@ -96,12 +96,6 @@ do_mkfs_btrfs (char *const *devices,
int nodesize, int sectorsize)
{
size_t nr_devices = count_strings (devices);
-
- if (nr_devices == 0) {
- reply_with_error ("list of devices must be non-empty");
- return -1;
- }
-
size_t MAX_ARGS = nr_devices + 64;
const char *argv[MAX_ARGS];
size_t i = 0, j;
@@ -113,6 +107,11 @@ do_mkfs_btrfs (char *const *devices,
char nodesize_s[64];
char sectorsize_s[64];
+ if (nr_devices == 0) {
+ reply_with_error ("list of devices must be non-empty");
+ return -1;
+ }
+
ADD_ARG (argv, i, str_mkfs_btrfs);
/* Optional arguments. */
@@ -311,6 +310,9 @@ guestfs_int_btrfssubvolume_list *
do_btrfs_subvolume_list (const mountable_t *fs)
{
char **lines;
+ size_t i = 0;
+ const size_t MAX_ARGS = 64;
+ const char *argv[MAX_ARGS];
/* Execute 'btrfs subvolume list <fs>', and split the output into lines */
{
@@ -351,9 +353,6 @@ do_btrfs_subvolume_list (const mountable_t *fs)
}
}
- size_t i = 0;
- const size_t MAX_ARGS = 64;
- const char *argv[MAX_ARGS];
ADD_ARG (argv, i, str_btrfs);
ADD_ARG (argv, i, "subvolume");
ADD_ARG (argv, i, "list");
diff --git a/generator/c.ml b/generator/c.ml
index c3185be..4b244a5 100644
--- a/generator/c.ml
+++ b/generator/c.ml
@@ -1034,6 +1034,8 @@ and generate_client_structs_copy () =
pr "copy_%s (const struct guestfs_%s *inp, struct guestfs_%s *out)\n"
typ typ typ;
pr "{\n";
+ pr " int err;\n";
+ pr "\n";
List.iter (
function
| name, FString
@@ -1076,7 +1078,7 @@ and generate_client_structs_copy () =
pr " return 0;\n";
pr "\n";
pr "error: ;\n";
- pr " int err = errno;\n";
+ pr " err = errno;\n";
pr " free_%s (out);\n" typ;
pr " errno = err;\n";
pr " return -1;\n";
@@ -1104,7 +1106,9 @@ and generate_client_structs_copy () =
pr "\n";
if has_boxed_cols then (
pr " if (copy_%s (inp, ret) == -1) {\n" typ;
- pr " int err = errno;\n";
+ pr " int err;\n";
+ pr "\n";
+ pr " err = errno;\n";
pr " free (ret);\n";
pr " errno = err;\n";
pr " return NULL;\n";
@@ -1120,8 +1124,11 @@ and generate_client_structs_copy () =
pr "GUESTFS_DLL_PUBLIC struct guestfs_%s_list *\n" typ;
pr "guestfs_copy_%s_list (const struct guestfs_%s_list *inp)\n" typ typ;
pr "{\n";
+ pr " int err;\n";
pr " struct guestfs_%s_list *ret;\n" typ;
pr " size_t i = 0;\n";
+ if has_boxed_cols then
+ pr " size_t j;\n";
pr "\n";
pr " ret = malloc (sizeof *ret);\n";
pr " if (ret == NULL)\n";
@@ -1144,9 +1151,8 @@ and generate_client_structs_copy () =
pr " return ret;\n";
pr "\n";
pr "error: ;\n";
- pr " int err = errno;\n";
+ pr " err = errno;\n";
if has_boxed_cols then (
- pr " size_t j;\n";
pr " for (j = 0; j < i; ++j)\n";
pr " free_%s (&ret->val[j]);\n" typ
);
@@ -1837,8 +1843,9 @@ and generate_client_actions hash () =
pr "\n";
pr " if (hdr.status == GUESTFS_STATUS_ERROR) {\n";
- trace_return_error ~indent:4 name style errcode;
pr " int errnum = 0;\n";
+ pr "\n";
+ trace_return_error ~indent:4 name style errcode;
pr " if (err.errno_string[0] != '\\0')\n";
pr " errnum = guestfs___string_to_errno (err.errno_string);\n";
pr " if (errnum <= 0)\n";
@@ -1971,8 +1978,10 @@ and generate_client_actions_variants () =
pr "{\n";
pr " va_list optargs;\n";
pr "\n";
+ pr " %sr;\n" rtype;
+ pr "\n";
pr " va_start (optargs, %s);\n" last_arg;
- pr " %sr = guestfs_%s_va " rtype c_name;
+ pr " r = guestfs_%s_va " c_name;
generate_c_call_args ~handle:"g" ~implicit_size_ptr:"size_r" style;
pr ";\n";
pr " va_end (optargs);\n";
@@ -1987,6 +1996,7 @@ and generate_client_actions_variants () =
pr " struct guestfs_%s_argv optargs_s;\n" c_name;
pr " struct guestfs_%s_argv *optargs = &optargs_s;\n" c_name;
pr " int i;\n";
+ pr " uint64_t i_mask;\n";
pr "\n";
pr " optargs_s.bitmask = 0;\n";
pr "\n";
@@ -2020,7 +2030,7 @@ and generate_client_actions_variants () =
pr " return %s;\n" (string_of_errcode errcode);
pr " }\n";
pr "\n";
- pr " uint64_t i_mask = UINT64_C(1) << i;\n";
+ pr " i_mask = UINT64_C(1) << i;\n";
pr " if (optargs_s.bitmask & i_mask) {\n";
pr " error (g, \"%%s: same optional argument specified more than once\",\n";
pr " \"%s\");\n" name;
diff --git a/src/alloc.c b/src/alloc.c
index e513d48..a7acdd3 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -116,9 +116,10 @@ guestfs___safe_asprintf (guestfs_h *g, const char *fs, ...)
{
va_list args;
char *msg;
+ int err;
va_start (args, fs);
- int err = vasprintf (&msg, fs, args);
+ err = vasprintf (&msg, fs, args);
va_end (args);
if (err == -1)
diff --git a/src/command.c b/src/command.c
index 02e5801..4bb469b 100644
--- a/src/command.c
+++ b/src/command.c
@@ -179,9 +179,10 @@ guestfs___cmd_add_arg_format (struct command *cmd, const char *fs, ...)
{
va_list args;
char *arg;
+ int err;
va_start (args, fs);
- int err = vasprintf (&arg, fs, args);
+ err = vasprintf (&arg, fs, args);
va_end (args);
if (err < 0)
diff --git a/src/errors.c b/src/errors.c
index 008267f..c51c4fa 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -118,9 +118,10 @@ guestfs___error_errno (guestfs_h *g, int errnum, const char *fs, ...)
{
va_list args;
CLEANUP_FREE char *msg = NULL;
+ int err;
va_start (args, fs);
- int err = vasprintf (&msg, fs, args);
+ err = vasprintf (&msg, fs, args);
va_end (args);
if (err < 0) return;
@@ -138,14 +139,15 @@ guestfs___perrorf (guestfs_h *g, const char *fs, ...)
va_list args;
CLEANUP_FREE char *msg = NULL;
int errnum = errno;
+ int err;
+ char buf[256];
va_start (args, fs);
- int err = vasprintf (&msg, fs, args);
+ err = vasprintf (&msg, fs, args);
va_end (args);
if (err < 0) return;
- char buf[256];
strerror_r (errnum, buf, sizeof buf);
msg = safe_realloc (g, msg, strlen (msg) + 2 + strlen (buf) + 1);
diff --git a/src/filearch.c b/src/filearch.c
index 7978141..17f9e38 100644
--- a/src/filearch.c
+++ b/src/filearch.c
@@ -81,6 +81,7 @@ static char *
canonical_elf_arch (guestfs_h *g, const char *elf_arch)
{
const char *r;
+ char *ret;
if (strstr (elf_arch, "Intel 80386"))
r = "i386";
@@ -103,7 +104,7 @@ canonical_elf_arch (guestfs_h *g, const char *elf_arch)
else
r = elf_arch;
- char *ret = safe_strdup (g, r);
+ ret = safe_strdup (g, r);
return ret;
}
@@ -193,10 +194,15 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
safe_asprintf (g, "%s/%s", dir, initrd_binaries[i]);
if (is_regular_file (bin)) {
- int flags = g->verbose ? MAGIC_DEBUG : 0;
+ int flags;
+ magic_t m;
+ const char *line;
+ CLEANUP_FREE char *elf_arch = NULL;
+
+ flags = g->verbose ? MAGIC_DEBUG : 0;
flags |= MAGIC_ERROR | MAGIC_RAW;
- magic_t m = magic_open (flags);
+ m = magic_open (flags);
if (m == NULL) {
perrorf (g, "magic_open");
goto out;
@@ -208,14 +214,14 @@ cpio_arch (guestfs_h *g, const char *file, const char *path)
goto out;
}
- const char *line = magic_file (m, bin);
+ line = magic_file (m, bin);
if (line == NULL) {
perrorf (g, "magic_file: %s", bin);
magic_close (m);
goto out;
}
- CLEANUP_FREE char *elf_arch = match1 (g, line, re_file_elf);
+ elf_arch = match1 (g, line, re_file_elf);
if (elf_arch != NULL) {
ret = canonical_elf_arch (g, elf_arch);
magic_close (m);
diff --git a/src/fuse.c b/src/fuse.c
index caf8719..dd63729 100644
--- a/src/fuse.c
+++ b/src/fuse.c
@@ -89,6 +89,7 @@ static struct guestfs_xattr_list *
copy_xattr_list (guestfs_h *g, const struct guestfs_xattr *first, size_t num)
{
struct guestfs_xattr_list *xattrs;
+ size_t i;
xattrs = malloc (sizeof *xattrs);
if (xattrs == NULL) {
@@ -104,7 +105,6 @@ copy_xattr_list (guestfs_h *g, const struct guestfs_xattr *first, size_t num)
return NULL;
}
- size_t i;
for (i = 0; i < num; ++i) {
xattrs->val[i].attrname = strdup (first[i].attrname);
xattrs->val[i].attrval_len = first[i].attrval_len;
@@ -119,20 +119,21 @@ static int
mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi)
{
+ time_t now;
+ size_t i;
+ char **names;
+ CLEANUP_FREE_DIRENT_LIST struct guestfs_dirent_list *ents = NULL;
DECL_G ();
DEBUG_CALL ("%s, %p, %ld", path, buf, (long) offset);
- time_t now;
time (&now);
dir_cache_remove_all_expired (g, now);
- CLEANUP_FREE_DIRENT_LIST struct guestfs_dirent_list *ents =
- guestfs_readdir (g, path);
+ ents = guestfs_readdir (g, path);
if (ents == NULL)
RETURN_ERRNO;
- size_t i;
for (i = 0; i < ents->len; ++i) {
struct stat stat;
memset (&stat, 0, sizeof stat);
@@ -162,14 +163,17 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
/* Now prepopulate the directory caches. This step is just an
* optimization, don't worry if it fails.
*/
- char **names = malloc ((ents->len + 1) * sizeof (char *));
+ names = malloc ((ents->len + 1) * sizeof (char *));
if (names) {
+ CLEANUP_FREE_STAT_LIST struct guestfs_stat_list *ss = NULL;
+ CLEANUP_FREE_XATTR_LIST struct guestfs_xattr_list *xattrs = NULL;
+ char **links;
+
for (i = 0; i < ents->len; ++i)
names[i] = ents->val[i].name;
names[i] = NULL;
- CLEANUP_FREE_STAT_LIST struct guestfs_stat_list *ss =
- guestfs_lstatlist (g, path, names);
+ ss = guestfs_lstatlist (g, path, names);
if (ss) {
for (i = 0; i < ss->len; ++i) {
if (ss->val[i].ino >= 0) {
@@ -195,12 +199,12 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
}
}
- CLEANUP_FREE_XATTR_LIST struct guestfs_xattr_list *xattrs =
- guestfs_lxattrlist (g, path, names);
+ xattrs = guestfs_lxattrlist (g, path, names);
if (xattrs) {
size_t ni, num;
struct guestfs_xattr *first;
struct guestfs_xattr_list *copy;
+
for (i = 0, ni = 0; i < xattrs->len; ++i, ++ni) {
/* assert (strlen (xattrs->val[i].attrname) == 0); */
if (xattrs->val[i].attrval_len > 0) {
@@ -219,7 +223,7 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
}
}
- char **links = guestfs_readlinklist (g, path, names);
+ links = guestfs_readlinklist (g, path, names);
if (links) {
for (i = 0; names[i] != NULL; ++i) {
if (links[i][0])
@@ -241,18 +245,18 @@ mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
static int
mount_local_getattr (const char *path, struct stat *statbuf)
{
+ const struct stat *buf;
+ CLEANUP_FREE_STAT struct guestfs_stat *r = NULL;
DECL_G ();
DEBUG_CALL ("%s, %p", path, statbuf);
- const struct stat *buf;
-
buf = lsc_lookup (g, path);
if (buf) {
memcpy (statbuf, buf, sizeof *statbuf);
return 0;
}
- CLEANUP_FREE_STAT struct guestfs_stat *r = guestfs_lstat (g, path);
+ r = guestfs_lstat (g, path);
if (r == NULL)
RETURN_ERRNO;
@@ -281,11 +285,12 @@ mount_local_getattr (const char *path, struct stat *statbuf)
static int
mount_local_access (const char *path, int mask)
{
- DECL_G ();
- DEBUG_CALL ("%s, %d", path, mask);
-
struct stat statbuf;
int r;
+ struct fuse_context *fuse;
+ int ok = 1;
+ DECL_G ();
+ DEBUG_CALL ("%s, %d", path, mask);
if (g->ml_read_only && (mask & W_OK))
return -EROFS;
@@ -294,8 +299,7 @@ mount_local_access (const char *path, int mask)
if (r < 0 || mask == F_OK)
return r;
- struct fuse_context *fuse = fuse_get_context ();
- int ok = 1;
+ fuse = fuse_get_context ();
if (mask & R_OK)
ok = ok &&
@@ -319,11 +323,11 @@ mount_local_access (const char *path, int mask)
static int
mount_local_readlink (const char *path, char *buf, size_t size)
{
- DECL_G ();
- DEBUG_CALL ("%s, %p, %zu", path, buf, size);
-
const char *r;
int free_it = 0;
+ size_t len;
+ DECL_G ();
+ DEBUG_CALL ("%s, %p, %zu", path, buf, size);
r = rlc_lookup (g, path);
if (!r) {
@@ -336,7 +340,7 @@ mount_local_readlink (const char *path, char *buf, size_t size)
/* Note this is different from the real readlink(2) syscall. FUSE wants
* the string to be always nul-terminated, even if truncated.
*/
- size_t len = strlen (r);
+ len = strlen (r);
if (len > size - 1)
len = size - 1;
@@ -354,11 +358,10 @@ mount_local_readlink (const char *path, char *buf, size_t size)
static int
mount_local_mknod (const char *path, mode_t mode, dev_t rdev)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, 0%o, 0x%lx", path, mode, (long) rdev);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -373,11 +376,10 @@ mount_local_mknod (const char *path, mode_t mode, dev_t rdev)
static int
mount_local_mkdir (const char *path, mode_t mode)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, 0%o", path, mode);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -392,11 +394,10 @@ mount_local_mkdir (const char *path, mode_t mode)
static int
mount_local_unlink (const char *path)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s", path);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -411,11 +412,10 @@ mount_local_unlink (const char *path)
static int
mount_local_rmdir (const char *path)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s", path);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -430,11 +430,10 @@ mount_local_rmdir (const char *path)
static int
mount_local_symlink (const char *from, const char *to)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, to);
@@ -449,11 +448,10 @@ mount_local_symlink (const char *from, const char *to)
static int
mount_local_rename (const char *from, const char *to)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, from);
@@ -469,11 +467,10 @@ mount_local_rename (const char *from, const char *to)
static int
mount_local_link (const char *from, const char *to)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %s", from, to);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, from);
@@ -489,11 +486,10 @@ mount_local_link (const char *from, const char *to)
static int
mount_local_chmod (const char *path, mode_t mode)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, 0%o", path, mode);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -508,11 +504,10 @@ mount_local_chmod (const char *path, mode_t mode)
static int
mount_local_chown (const char *path, uid_t uid, gid_t gid)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %ld, %ld", path, (long) uid, (long) gid);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -527,11 +522,10 @@ mount_local_chown (const char *path, uid_t uid, gid_t gid)
static int
mount_local_truncate (const char *path, off_t size)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %ld", path, (long) size);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -546,20 +540,21 @@ mount_local_truncate (const char *path, off_t size)
static int
mount_local_utimens (const char *path, const struct timespec ts[2])
{
+ int r;
+ time_t atsecs, mtsecs;
+ long atnsecs, mtnsecs;
DECL_G ();
DEBUG_CALL ("%s, [{ %ld, %ld }, { %ld, %ld }]",
path, ts[0].tv_sec, ts[0].tv_nsec, ts[1].tv_sec, ts[1].tv_nsec);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
- time_t atsecs = ts[0].tv_sec;
- long atnsecs = ts[0].tv_nsec;
- time_t mtsecs = ts[1].tv_sec;
- long mtnsecs = ts[1].tv_nsec;
+ atsecs = ts[0].tv_sec;
+ atnsecs = ts[0].tv_nsec;
+ mtsecs = ts[1].tv_sec;
+ mtnsecs = ts[1].tv_nsec;
#ifdef UTIME_NOW
if (atnsecs == UTIME_NOW)
@@ -591,11 +586,10 @@ mount_local_utimens (const char *path, const struct timespec ts[2])
static int
mount_local_open (const char *path, struct fuse_file_info *fi)
{
+ int flags = fi->flags & O_ACCMODE;
DECL_G ();
DEBUG_CALL ("%s, 0%o", path, fi->flags);
- int flags = fi->flags & O_ACCMODE;
-
if (g->ml_read_only && flags != O_RDONLY)
return -EROFS;
@@ -606,17 +600,16 @@ static int
mount_local_read (const char *path, char *buf, size_t size, off_t offset,
struct fuse_file_info *fi)
{
- DECL_G ();
- DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long) offset);
-
char *r;
size_t rsize;
+ const size_t limit = 2 * 1024 * 1024;
+ DECL_G ();
+ DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long) offset);
/* The guestfs protocol limits size to somewhere over 2MB. We just
* reduce the requested size here accordingly and push the problem
* up to every user. http://www.jwz.org/doc/worse-is-better.html
*/
- const size_t limit = 2 * 1024 * 1024;
if (size > limit)
size = limit;
@@ -640,6 +633,8 @@ static int
mount_local_write (const char *path, const char *buf, size_t size,
off_t offset, struct fuse_file_info *fi)
{
+ const size_t limit = 2 * 1024 * 1024;
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %p, %zu, %ld", path, buf, size, (long) offset);
@@ -648,11 +643,9 @@ mount_local_write (const char *path, const char *buf, size_t size,
dir_cache_invalidate (g, path);
/* See mount_local_read. */
- const size_t limit = 2 * 1024 * 1024;
if (size > limit)
size = limit;
- int r;
r = guestfs_pwrite (g, path, buf, size, offset);
if (r == -1)
RETURN_ERRNO;
@@ -663,10 +656,11 @@ mount_local_write (const char *path, const char *buf, size_t size,
static int
mount_local_statfs (const char *path, struct statvfs *stbuf)
{
+ CLEANUP_FREE_STATVFS struct guestfs_statvfs *r;
DECL_G ();
DEBUG_CALL ("%s, %p", path, stbuf);
- CLEANUP_FREE_STATVFS struct guestfs_statvfs *r = guestfs_statvfs (g, path);
+ r = guestfs_statvfs (g, path);
if (r == NULL)
RETURN_ERRNO;
@@ -702,11 +696,10 @@ static int
mount_local_fsync (const char *path, int isdatasync,
struct fuse_file_info *fi)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %d", path, isdatasync);
- int r;
-
r = guestfs_sync (g);
if (r == -1)
RETURN_ERRNO;
@@ -718,11 +711,10 @@ static int
mount_local_setxattr (const char *path, const char *name, const char *value,
size_t size, int flags)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %s, %p, %zu", path, name, value, size);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -743,13 +735,12 @@ static int
mount_local_getxattr (const char *path, const char *name, char *value,
size_t size)
{
- DECL_G ();
- DEBUG_CALL ("%s, %s, %p, %zu", path, name, value, size);
-
const struct guestfs_xattr_list *xattrs;
int free_attrs = 0;
ssize_t r;
size_t i, sz;
+ DECL_G ();
+ DEBUG_CALL ("%s, %s, %p, %zu", path, name, value, size);
xattrs = xac_lookup (g, path);
if (xattrs == NULL) {
@@ -802,11 +793,14 @@ out:
static int
mount_local_listxattr (const char *path, char *list, size_t size)
{
- DECL_G ();
- DEBUG_CALL ("%s, %p, %zu", path, list, size);
-
const struct guestfs_xattr_list *xattrs;
int free_attrs = 0;
+ size_t space = 0;
+ size_t len;
+ size_t i;
+ ssize_t r;
+ DECL_G ();
+ DEBUG_CALL ("%s, %p, %zu", path, list, size);
xattrs = xac_lookup (g, path);
if (xattrs == NULL) {
@@ -817,9 +811,6 @@ mount_local_listxattr (const char *path, char *list, size_t size)
}
/* Calculate how much space is required to hold the result. */
- size_t space = 0;
- size_t len;
- size_t i;
for (i = 0; i < xattrs->len; ++i) {
len = strlen (xattrs->val[i].attrname) + 1;
space += len;
@@ -832,7 +823,6 @@ mount_local_listxattr (const char *path, char *list, size_t size)
* copy as much as possible and return -ERANGE if there's not enough
* space in the buffer.
*/
- ssize_t r;
if (list == NULL) {
r = space;
goto out;
@@ -862,11 +852,10 @@ mount_local_listxattr (const char *path, char *list, size_t size)
static int
mount_local_removexattr(const char *path, const char *name)
{
+ int r;
DECL_G ();
DEBUG_CALL ("%s, %s", path, name);
- int r;
-
if (g->ml_read_only) return -EROFS;
dir_cache_invalidate (g, path);
@@ -1305,6 +1294,7 @@ lsc_insert (guestfs_h *g,
struct stat const *statbuf)
{
struct lsc_entry *entry;
+ size_t len;
entry = malloc (sizeof *entry);
if (entry == NULL) {
@@ -1312,7 +1302,7 @@ lsc_insert (guestfs_h *g,
return -1;
}
- size_t len = strlen (path) + strlen (name) + 2;
+ len = strlen (path) + strlen (name) + 2;
entry->c.pathname = malloc (len);
if (entry->c.pathname == NULL) {
perrorf (g, "malloc");
@@ -1337,6 +1327,7 @@ xac_insert (guestfs_h *g,
struct guestfs_xattr_list *xattrs)
{
struct xac_entry *entry;
+ size_t len;
entry = malloc (sizeof *entry);
if (entry == NULL) {
@@ -1344,7 +1335,7 @@ xac_insert (guestfs_h *g,
return -1;
}
- size_t len = strlen (path) + strlen (name) + 2;
+ len = strlen (path) + strlen (name) + 2;
entry->c.pathname = malloc (len);
if (entry->c.pathname == NULL) {
perrorf (g, "malloc");
@@ -1369,6 +1360,7 @@ rlc_insert (guestfs_h *g,
char *link)
{
struct rlc_entry *entry;
+ size_t len;
entry = malloc (sizeof *entry);
if (entry == NULL) {
@@ -1376,7 +1368,7 @@ rlc_insert (guestfs_h *g,
return -1;
}
- size_t len = strlen (path) + strlen (name) + 2;
+ len = strlen (path) + strlen (name) + 2;
entry->c.pathname = malloc (len);
if (entry->c.pathname == NULL) {
perrorf (g, "malloc");
diff --git a/src/inspect-apps.c b/src/inspect-apps.c
index 74446a4..dd2b3db 100644
--- a/src/inspect-apps.c
+++ b/src/inspect-apps.c
@@ -114,12 +114,11 @@ guestfs__inspect_list_applications (guestfs_h *g, const char *root)
struct guestfs_application2_list *
guestfs__inspect_list_applications2 (guestfs_h *g, const char *root)
{
+ struct guestfs_application2_list *ret = NULL;
struct inspect_fs *fs = guestfs___search_for_root (g, root);
if (!fs)
return NULL;
- struct guestfs_application2_list *ret = NULL;
-
/* Presently we can only list applications for installed disks. It
* is possible in future to get lists of packages from installers.
*/
@@ -400,11 +399,6 @@ static struct guestfs_application2_list *
list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
{
CLEANUP_FREE char *status = NULL;
- status = guestfs___download_to_tmp (g, fs, "/var/lib/dpkg/status", "status",
- MAX_PKG_DB_SIZE);
- if (status == NULL)
- return NULL;
-
struct guestfs_application2_list *apps = NULL, *ret = NULL;
FILE *fp;
char line[1024];
@@ -412,6 +406,11 @@ list_applications_deb (guestfs_h *g, struct inspect_fs *fs)
CLEANUP_FREE char *name = NULL, *version = NULL, *release = NULL, *arch = NULL;
int installed_flag = 0;
+ status = guestfs___download_to_tmp (g, fs, "/var/lib/dpkg/status", "status",
+ MAX_PKG_DB_SIZE);
+ if (status == NULL)
+ return NULL;
+
fp = fopen (status, "r");
if (fp == NULL) {
perrorf (g, "fopen: %s", status);
@@ -498,19 +497,16 @@ list_applications_windows (guestfs_h *g, struct inspect_fs *fs)
{
size_t len = strlen (fs->windows_systemroot) + 64;
char software[len];
+ CLEANUP_FREE char *software_path;
+ struct guestfs_application2_list *ret = NULL;
+
snprintf (software, len, "%s/system32/config/software",
fs->windows_systemroot);
- CLEANUP_FREE char *software_path = guestfs_case_sensitive_path (g, software);
+ software_path = guestfs_case_sensitive_path (g, software);
if (!software_path)
return NULL;
- struct guestfs_application2_list *ret = NULL;
- const char *hivepath[] =
- { "Microsoft", "Windows", "CurrentVersion", "Uninstall" };
- const char *hivepath2[] =
- { "WOW6432node", "Microsoft", "Windows", "CurrentVersion", "Uninstall" };
-
if (guestfs_hivex_open (g, software_path,
GUESTFS_HIVEX_OPEN_VERBOSE, g->verbose, -1) == -1)
return NULL;
@@ -521,12 +517,16 @@ list_applications_windows (guestfs_h *g, struct inspect_fs *fs)
ret->val = NULL;
/* Ordinary native applications. */
+ const char *hivepath[] =
+ { "Microsoft", "Windows", "CurrentVersion", "Uninstall" };
list_applications_windows_from_path (g, ret, hivepath,
sizeof hivepath / sizeof hivepath[0]);
/* 32-bit emulated Windows apps running on the WOW64 emulator.
* http://support.microsoft.com/kb/896459 (RHBZ#692545).
*/
+ const char *hivepath2[] =
+ { "WOW6432node", "Microsoft", "Windows", "CurrentVersion", "Uninstall" };
list_applications_windows_from_path (g, ret, hivepath2,
sizeof hivepath2 / sizeof hivepath2[0]);
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index c70960a..17b0b5f 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -404,6 +404,7 @@ int
guestfs___check_linux_root (guestfs_h *g, struct inspect_fs *fs)
{
int r;
+ char *major, *minor;
fs->type = OS_TYPE_LINUX;
@@ -423,7 +424,6 @@ guestfs___check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (parse_release_file (g, fs, "/etc/redhat-release") == -1)
return -1;
- char *major, *minor;
if ((major = match1 (g, fs->product_name, re_fedora)) != NULL) {
fs->distro = OS_DISTRO_FEDORA;
fs->major_version = guestfs___parse_unsigned_int (g, major);
@@ -923,8 +923,13 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
}
for (entry = entries; *entry != NULL; entry++) {
+ CLEANUP_FREE char *spec = NULL;
+ CLEANUP_FREE char *mp = NULL;
+ CLEANUP_FREE char *mountable = NULL;
+ CLEANUP_FREE char *vfstype = NULL;
+
snprintf (augpath, sizeof augpath, "%s/spec", *entry);
- CLEANUP_FREE char *spec = guestfs_aug_get (g, augpath);
+ spec = guestfs_aug_get (g, augpath);
if (spec == NULL)
return -1;
@@ -940,7 +945,7 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
continue;
snprintf (augpath, sizeof augpath, "%s/file", *entry);
- CLEANUP_FREE char *mp = guestfs_aug_get (g, augpath);
+ mp = guestfs_aug_get (g, augpath);
if (mp == NULL)
return -1;
@@ -957,7 +962,6 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
continue;
/* Resolve UUID= and LABEL= to the actual device. */
- CLEANUP_FREE char *mountable = NULL;
if (STRPREFIX (spec, "UUID="))
mountable = guestfs_findfs_uuid (g, &spec[5]);
else if (STRPREFIX (spec, "LABEL="))
@@ -977,24 +981,29 @@ check_fstab (guestfs_h *g, struct inspect_fs *fs)
continue;
snprintf (augpath, sizeof augpath, "%s/vfstype", *entry);
- CLEANUP_FREE char *vfstype = guestfs_aug_get (g, augpath);
+ vfstype = guestfs_aug_get (g, augpath);
if (vfstype == NULL) return -1;
if (STREQ (vfstype, "btrfs")) {
+ char **opt;
+
snprintf (augpath, sizeof augpath, "%s/opt", *entry);
CLEANUP_FREE_STRING_LIST char **opts = guestfs_aug_match (g, augpath);
if (opts == NULL) return -1;
- for (char **opt = opts; *opt; opt++) {
+ for (opt = opts; *opt; opt++) {
CLEANUP_FREE char *optname = guestfs_aug_get (g, augpath);
if (optname == NULL) return -1;
if (STREQ (optname, "subvol")) {
+ CLEANUP_FREE char *subvol = NULL;
+ char *new;
+
snprintf (augpath, sizeof augpath, "%s/value", *opt);
- CLEANUP_FREE char *subvol = guestfs_aug_get (g, augpath);
+ subvol = guestfs_aug_get (g, augpath);
if (subvol == NULL) return -1;
- char *new = safe_asprintf (g, "btrfsvol:%s/%s", mountable, subvol);
+ new = safe_asprintf (g, "btrfsvol:%s/%s", mountable, subvol);
free (mountable);
mountable = new;
}
@@ -1049,9 +1058,10 @@ static size_t
uuid_hash(const void *x, size_t table_size)
{
const md_uuid *a = x;
+ size_t h, i;
- size_t h = a->uuid[0];
- for (size_t i = 1; i < 4; i++) {
+ h = a->uuid[0];
+ for (i = 1; i < 4; i++) {
h ^= a->uuid[i];
}
@@ -1063,8 +1073,9 @@ uuid_cmp(const void *x, const void *y)
{
const md_uuid *a = x;
const md_uuid *b = y;
+ size_t i;
- for (size_t i = 0; i < 1; i++) {
+ for (i = 0; i < 1; i++) {
if (a->uuid[i] != b->uuid[i]) return 0;
}
@@ -1120,6 +1131,7 @@ map_app_md_devices (guestfs_h *g, Hash_table **map)
{
CLEANUP_FREE_STRING_LIST char **mds = NULL;
size_t n = 0;
+ char **md;
/* A hash mapping uuids to md device names */
*map = hash_initialize(16, NULL, uuid_hash, uuid_cmp, md_uuid_free);
@@ -1128,22 +1140,24 @@ map_app_md_devices (guestfs_h *g, Hash_table **map)
mds = guestfs_list_md_devices(g);
if (mds == NULL) goto error;
- for (char **md = mds; *md != NULL; md++) {
+ for (md = mds; *md != NULL; md++) {
+ char **i;
CLEANUP_FREE_STRING_LIST char **detail = guestfs_md_detail (g, *md);
if (detail == NULL) goto error;
/* Iterate over keys until we find uuid */
- char **i;
for (i = detail; *i != NULL; i += 2) {
if (STREQ(*i, "uuid")) break;
}
/* We found it */
if (*i) {
+ md_uuid *entry;
+
/* Next item is the uuid value */
i++;
- md_uuid *entry = safe_malloc(g, sizeof(md_uuid));
+ entry = safe_malloc(g, sizeof(md_uuid));
entry->path = safe_strdup(g, *md);
if (parse_uuid(*i, entry->uuid) == -1) {
diff --git a/src/inspect.c b/src/inspect.c
index 46bb4ab..49bf765 100644
--- a/src/inspect.c
+++ b/src/inspect.c
@@ -41,6 +41,9 @@
char **
guestfs__inspect_os (guestfs_h *g)
{
+ CLEANUP_FREE_STRING_LIST char **fses = NULL;
+ char **fs, **ret;
+
/* Remove any information previously stored in the handle. */
guestfs___free_inspect_info (g);
@@ -51,10 +54,10 @@ guestfs__inspect_os (guestfs_h *g)
* and add that information to the handle.
*/
- CLEANUP_FREE_STRING_LIST char **fses = guestfs_list_filesystems (g);
+ fses = guestfs_list_filesystems (g);
if (fses == NULL) return NULL;
- for (char **fs = fses; *fs; fs += 2) {
+ for (fs = fses; *fs; fs += 2) {
if (guestfs___check_for_filesystem_on (g, *fs)) {
guestfs___free_inspect_info (g);
return NULL;
@@ -66,7 +69,7 @@ guestfs__inspect_os (guestfs_h *g)
* filesystems which are root devices and return that to the user.
* Fall through to guestfs_inspect_get_roots to do that.
*/
- char **ret = guestfs_inspect_get_roots (g);
+ ret = guestfs_inspect_get_roots (g);
if (ret == NULL)
guestfs___free_inspect_info (g);
return ret;
@@ -105,10 +108,11 @@ char *
guestfs__inspect_get_type (guestfs_h *g, const char *root)
{
struct inspect_fs *fs = guestfs___search_for_root (g, root);
+ char *ret = NULL;
+
if (!fs)
return NULL;
- char *ret = NULL;
switch (fs->type) {
case OS_TYPE_DOS: ret = safe_strdup (g, "dos"); break;
case OS_TYPE_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
@@ -140,10 +144,11 @@ char *
guestfs__inspect_get_distro (guestfs_h *g, const char *root)
{
struct inspect_fs *fs = guestfs___search_for_root (g, root);
+ char *ret = NULL;
+
if (!fs)
return NULL;
- char *ret = NULL;
switch (fs->distro) {
case OS_DISTRO_ARCHLINUX: ret = safe_strdup (g, "archlinux"); break;
case OS_DISTRO_BUILDROOT: ret = safe_strdup (g, "buildroot"); break;
@@ -252,11 +257,11 @@ guestfs__inspect_get_windows_current_control_set (guestfs_h *g,
char *
guestfs__inspect_get_format (guestfs_h *g, const char *root)
{
+ char *ret = NULL;
struct inspect_fs *fs = guestfs___search_for_root (g, root);
if (!fs)
return NULL;
- char *ret = NULL;
switch (fs->format) {
case OS_FORMAT_INSTALLED: ret = safe_strdup (g, "installed"); break;
case OS_FORMAT_INSTALLER: ret = safe_strdup (g, "installer"); break;
@@ -302,14 +307,17 @@ guestfs__inspect_is_multipart (guestfs_h *g, const char *root)
char **
guestfs__inspect_get_mountpoints (guestfs_h *g, const char *root)
{
- struct inspect_fs *fs = guestfs___search_for_root (g, root);
+ char **ret;
+ size_t i, count, nr;
+ struct inspect_fs *fs;
+
+ fs = guestfs___search_for_root (g, root);
if (!fs)
return NULL;
#define CRITERION(fs, i) fs->fstab[i].mountpoint[0] == '/'
- char **ret;
- size_t i, count, nr = fs->nr_fstab;
+ nr = fs->nr_fstab;
if (nr == 0)
count = 1;
@@ -350,13 +358,14 @@ guestfs__inspect_get_mountpoints (guestfs_h *g, const char *root)
char **
guestfs__inspect_get_filesystems (guestfs_h *g, const char *root)
{
+ char **ret;
+ size_t i, nr;
struct inspect_fs *fs = guestfs___search_for_root (g, root);
+
if (!fs)
return NULL;
- char **ret;
- size_t i, nr = fs->nr_fstab;
-
+ nr = fs->nr_fstab;
ret = calloc (nr == 0 ? 2 : nr+1, sizeof (char *));
if (ret == NULL) {
perrorf (g, "calloc");
@@ -399,11 +408,11 @@ guestfs__inspect_get_drive_mappings (guestfs_h *g, const char *root)
char *
guestfs__inspect_get_package_format (guestfs_h *g, const char *root)
{
+ char *ret = NULL;
struct inspect_fs *fs = guestfs___search_for_root (g, root);
if (!fs)
return NULL;
- char *ret = NULL;
switch (fs->package_format) {
case OS_PACKAGE_FORMAT_RPM: ret = safe_strdup (g, "rpm"); break;
case OS_PACKAGE_FORMAT_DEB: ret = safe_strdup (g, "deb"); break;
@@ -425,11 +434,11 @@ guestfs__inspect_get_package_format (guestfs_h *g, const char *root)
char *
guestfs__inspect_get_package_management (guestfs_h *g, const char *root)
{
+ char *ret = NULL;
struct inspect_fs *fs = guestfs___search_for_root (g, root);
if (!fs)
return NULL;
- char *ret = NULL;
switch (fs->package_management) {
case OS_PACKAGE_MANAGEMENT_YUM: ret = safe_strdup (g, "yum"); break;
case OS_PACKAGE_MANAGEMENT_UP2DATE: ret = safe_strdup (g, "up2date"); break;
@@ -463,7 +472,8 @@ guestfs__inspect_get_hostname (guestfs_h *g, const char *root)
void
guestfs___free_inspect_info (guestfs_h *g)
{
- size_t i;
+ size_t i, j;
+
for (i = 0; i < g->nr_fses; ++i) {
free (g->fses[i].mountable);
free (g->fses[i].product_name);
@@ -472,7 +482,6 @@ guestfs___free_inspect_info (guestfs_h *g)
free (g->fses[i].hostname);
free (g->fses[i].windows_systemroot);
free (g->fses[i].windows_current_control_set);
- size_t j;
for (j = 0; j < g->fses[i].nr_fstab; ++j) {
free (g->fses[i].fstab[j].mountable);
free (g->fses[i].fstab[j].mountpoint);
@@ -562,15 +571,15 @@ guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
struct inspect_fs *
guestfs___search_for_root (guestfs_h *g, const char *root)
{
+ size_t i;
+
if (g->nr_fses == 0) {
error (g, _("no inspection data: call guestfs_inspect_os first"));
return NULL;
}
- size_t i;
- struct inspect_fs *fs;
for (i = 0; i < g->nr_fses; ++i) {
- fs = &g->fses[i];
+ struct inspect_fs *fs = &g->fses[i];
if (fs->is_root && STREQ (root, fs->mountable))
return fs;
}
diff --git a/src/private-data.c b/src/private-data.c
index e13b4f7..74465af 100644
--- a/src/private-data.c
+++ b/src/private-data.c
@@ -66,20 +66,22 @@ freer (void *x)
void
guestfs_set_private (guestfs_h *g, const char *key, void *data)
{
+ struct pda_entry *new_entry, *old_entry, *entry;
+
if (g->pda == NULL) {
g->pda = hash_initialize (16, NULL, hasher, comparator, freer);
if (g->pda == NULL)
g->abort_cb ();
}
- struct pda_entry *new_entry = safe_malloc (g, sizeof *new_entry);
+ new_entry = safe_malloc (g, sizeof *new_entry);
new_entry->key = safe_strdup (g, key);
new_entry->data = data;
- struct pda_entry *old_entry = hash_delete (g->pda, new_entry);
+ old_entry = hash_delete (g->pda, new_entry);
freer (old_entry);
- struct pda_entry *entry = hash_insert (g->pda, new_entry);
+ entry = hash_insert (g->pda, new_entry);
if (entry == NULL)
g->abort_cb ();
assert (entry == new_entry);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git
More information about the Pkg-libvirt-commits
mailing list