]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
storage: fix integer comparisons
authorChristian Brauner <christian.brauner@ubuntu.com>
Fri, 3 Sep 2021 07:42:11 +0000 (09:42 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Fri, 3 Sep 2021 11:01:01 +0000 (13:01 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/storage/btrfs.c
src/lxc/storage/lvm.c
src/lxc/storage/overlay.c
src/lxc/storage/storage_utils.c
src/lxc/storage/zfs.c

index 22ba1484cefb13c8752977eff1f8f0c067101335..e0b7586c3e137ca8b10bbd88ba28310e6cb123b3 100644 (file)
@@ -687,11 +687,11 @@ static void free_btrfs_tree(struct my_btrfs_tree *tree)
 static bool do_remove_btrfs_children(struct my_btrfs_tree *tree, u64 root_id,
                                     const char *path)
 {
-       int i, ret;
+       int ret;
        char *newpath;
        size_t len;
 
-       for (i = 0; i < tree->num; i++) {
+       for (int i = 0; i < tree->num; i++) {
                if (tree->nodes[i].parentid == root_id) {
                        if (!tree->nodes[i].dirname) {
                                WARN("Odd condition: child objid with no name under %s", path);
@@ -706,7 +706,7 @@ static bool do_remove_btrfs_children(struct my_btrfs_tree *tree, u64 root_id,
                        }
 
                        ret = snprintf(newpath, len, "%s/%s", path, tree->nodes[i].dirname);
-                       if (ret < 0 || ret >= len) {
+                       if (ret < 0 || (size_t)ret >= len) {
                                free(newpath);
                                return false;
                        }
@@ -739,7 +739,7 @@ static int btrfs_lxc_rm_rf(const char *path)
        struct btrfs_ioctl_search_header sh;
        struct btrfs_root_ref *ref;
        struct my_btrfs_tree *tree;
-       int ret, e, i;
+       int ret, e;
        unsigned long off = 0;
        u16 name_len;
        u64 dir_id;
@@ -802,7 +802,7 @@ static int btrfs_lxc_rm_rf(const char *path)
                        break;
 
                off = 0;
-               for (i = 0; i < sk->nr_items; i++) {
+               for (size_t i = 0; i < sk->nr_items; i++) {
                        memcpy(&sh, args.buf + off, sizeof(sh));
                        off += sizeof(sh);
 
index 9c79565e258a3e8dd530622dcc4d4ae2bf3d4eaf..ed53bd086787c8aa2061c1b5beabee67a51d73fa 100644 (file)
@@ -275,10 +275,10 @@ int lvm_compare_lv_attr(const char *path, int pos, const char expected)
                return 0;
 
        len = strlen(output);
-       while (start < len && output[start] == ' ')
+       while ((size_t)start < len && output[start] == ' ')
                start++;
 
-       if (start + pos < len && output[start + pos] == expected)
+       if ((size_t)(start + pos) < len && output[start + pos] == expected)
                return 1;
 
        return 0;
index 410b4ff5a4c72df4aa2ed2e0afb24646b4e8c432..c00ebc344e37e8cece81d7f670ab4ab4d7e37155 100644 (file)
@@ -116,7 +116,7 @@ int ovl_clonepaths(struct lxc_storage *orig, struct lxc_storage *new, const char
                        return log_error_errno(-ENOMEM, ENOMEM, "Failed to allocate memory");
 
                ret = snprintf(new->src, len, "overlay:%s:%s", src, delta);
-               if (ret < 0 || (size_t)ret >= len)
+               if (ret < 0 || ret >= len)
                        return log_error_errno(-EIO, EIO, "Failed to create string");
        } else if (!strcmp(orig->type, "overlayfs") ||
                   !strcmp(orig->type, "overlay")) {
@@ -467,7 +467,7 @@ int ovl_mount(struct lxc_storage *bdev)
                                lower, work);
        }
 
-       if (ret < 0 || ret >= len || ret2 < 0 || ret2 >= len2) {
+       if (ret < 0 || (size_t)ret >= len || ret2 < 0 || (size_t)ret2 >= len2) {
                ERROR("Failed to create string");
                free(mntdata);
                free(dup);
index de82e4d4176ff0bb78e41eef6df725819072dfe8..d3548d21ba31e10c22c32c980c94edfe7f7dfd0b 100644 (file)
@@ -184,6 +184,8 @@ int detect_fs(struct lxc_storage *bdev, char *type, int len)
                _exit(EXIT_FAILURE);
 
        while (getline(&line, &linelen, f) != -1) {
+               ssize_t nbytes;
+
                sp1 = strchr(line, ' ');
                if (!sp1)
                        _exit(EXIT_FAILURE);
@@ -203,7 +205,8 @@ int detect_fs(struct lxc_storage *bdev, char *type, int len)
                *sp3 = '\0';
 
                sp2++;
-               if (write(p[1], sp2, strlen(sp2)) != strlen(sp2))
+               nbytes = write(p[1], sp2, strlen(sp2));
+               if (nbytes < 0 || (size_t)nbytes != strlen(sp2))
                        _exit(EXIT_FAILURE);
 
                _exit(EXIT_SUCCESS);
index b209d79e0e66a299a922b1b2e80552e89a34f5dc..6e3c739afa891e8441b9fc5a4250a2bbe61dd6a2 100644 (file)
@@ -380,7 +380,7 @@ bool zfs_snapshot(struct lxc_conf *conf, struct lxc_storage *orig,
 
        len -= snapshot_len;
        ret = snprintf(snapshot + snapshot_len, len, "@%s", snap_name);
-       if (ret < 0 || ret >= len) {
+       if (ret < 0 || (size_t)ret >= len) {
                ERROR("Failed to create string");
                free(snapshot);
                return false;
@@ -514,7 +514,7 @@ int zfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
 
        len -= dataset_len - 4;
        ret = snprintf(new->src + dataset_len + 4, len, "/%s", cname);
-       if (ret < 0 || ret >= len) {
+       if (ret < 0 || (size_t)ret >= len) {
                ERROR("Failed to create string");
                return -1;
        }
@@ -539,7 +539,7 @@ int zfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
        }
 
        ret = snprintf(new->dest, len, "%s/%s/rootfs", lxcpath, cname);
-       if (ret < 0 || ret >= len) {
+       if (ret < 0 || (size_t)ret >= len) {
                ERROR("Failed to create string \"%s/%s/rootfs\"", lxcpath, cname);
                return -1;
        }
@@ -717,7 +717,7 @@ int zfs_create(struct lxc_storage *bdev, const char *dest, const char *n,
        }
 
        ret = snprintf(bdev->src, len, "zfs:%s/%s", zfsroot, n);
-       if (ret < 0 || ret >= len) {
+       if (ret < 0 || (size_t)ret >= len) {
                ERROR("Failed to create string");
                return -1;
        }