Whamcloud - gitweb
LU-17000 utils: Use correct printf specifier for lustre_rsync.c 54/55154/2
authorArshad Hussain <arshad.hussain@aeoncomputing.com>
Mon, 20 May 2024 07:17:58 +0000 (03:17 -0400)
committerOleg Drokin <green@whamcloud.com>
Mon, 10 Jun 2024 06:13:38 +0000 (06:13 +0000)
In lr_copy_xattr() use "%s" for "char *" and "%zd"
for "ssize_t" data type.

Change 'struct lr_info' fields xsize and xvsize from size_t
to ssize_t as extended attribute functions can return
negative values

Test-Parameters: trivial testlist=lustre-rsync-test
CoverityID: 397866 ("Invalid type in argument to printf format specifier")
CoverityID: 397573 ("Invalid type in argument to printf format specifier")
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Idd7c4f81c1a1751c595c86b10493aab6f959059f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55154
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/utils/lustre_rsync.c

index 07e8eea..9ada5c3 100644 (file)
@@ -167,9 +167,9 @@ struct lr_info {
 
        /* Variables for querying the xattributes */
        char *xlist;
-       size_t xsize;
+       ssize_t xsize;
        char *xvalue;
-       size_t xvsize;
+       ssize_t xvsize;
 };
 
 struct lr_parent_child_list {
@@ -452,17 +452,17 @@ int lr_copy_attr(const char *src, const char *dest)
 /* Copy all xattrs from file info->src to info->dest */
 int lr_copy_xattr(struct lr_info *info)
 {
-       size_t size = info->xsize;
+       ssize_t size = info->xsize;
+       ssize_t rc;
        int start;
        int len;
-       int rc;
 
        if (noxattr)
                return 0;
 
        errno = 0;
        rc = llistxattr(info->src, info->xlist, size);
-       lr_debug(DTRACE, "llistxattr(%s,%p) returned %d, errno=%d\n",
+       lr_debug(DTRACE, "llistxattr(%s,%p) returned %zd, errno=%d\n",
                 info->src, info->xlist, rc, errno);
        if ((rc > 0 && info->xlist == NULL) || errno == ERANGE) {
                size = rc > PATH_MAX ? rc : PATH_MAX;
@@ -471,7 +471,7 @@ int lr_copy_xattr(struct lr_info *info)
                        return -ENOMEM;
                info->xsize = size;
                rc = llistxattr(info->src, info->xlist, size);
-               lr_debug(DTRACE, "llistxattr %s returned %d, errno=%d\n",
+               lr_debug(DTRACE, "llistxattr %s returned %zd, errno=%d\n",
                         info->src, rc, errno);
        }
        if (rc < 0)
@@ -484,7 +484,7 @@ int lr_copy_xattr(struct lr_info *info)
                rc = lgetxattr(info->src, info->xlist + start,
                               NULL, 0);
                if (rc < 0) {
-                       lr_debug(DTRACE, "\t(%s,0) rc=%d, errno=%d\n",
+                       lr_debug(DTRACE, "\t(%s,0) rc=%zd, errno=%d\n",
                                 info->xlist + start, rc, errno);
                        start += strlen(info->xlist + start) + 1;
                        continue;
@@ -503,13 +503,13 @@ int lr_copy_xattr(struct lr_info *info)
 
                rc = lgetxattr(info->src, info->xlist + start,
                               info->xvalue, size);
-               lr_debug(DTRACE, "\t(%s,%d) rc=%p\n", info->xlist + start,
+               lr_debug(DTRACE, "\t(%s,%s) rc=%zd\n", info->xlist + start,
                         info->xvalue, rc);
                if (rc > 0) {
                        size = rc;
                        rc = lsetxattr(info->dest, info->xlist + start,
                                       info->xvalue, size, 0);
-                       lr_debug(DTRACE, "\tlsetxattr(), rc=%d, errno=%d\n",
+                       lr_debug(DTRACE, "\tlsetxattr(), rc=%zd, errno=%d\n",
                                 rc, errno);
                        if (rc == -1) {
                                if (errno != ENOTSUP) {
@@ -1549,8 +1549,8 @@ int lr_replicate(void)
        struct lr_info *ext = NULL;
        time_t start;
        int xattr_not_supp;
-       int i;
-       int rc;
+       int i, rc;
+       ssize_t rc1;
 
        start = time(NULL);
 
@@ -1592,8 +1592,8 @@ int lr_replicate(void)
                        rc = -errno;
                        goto out;
                }
-               rc = llistxattr(info->src, info->xlist, info->xsize);
-               if (rc == -1 && errno == ENOTSUP) {
+               rc1 = llistxattr(info->src, info->xlist, info->xsize);
+               if (rc1 == -1 && errno == ENOTSUP) {
                        fprintf(stderr, "xattrs not supported on %s\n",
                                status->ls_targets[i]);
                        xattr_not_supp++;