From f155d6456584ada25023bfc028286728ba113e53 Mon Sep 17 00:00:00 2001 From: Arshad Hussain Date: Mon, 20 May 2024 03:17:58 -0400 Subject: [PATCH] LU-17000 utils: Use correct printf specifier for lustre_rsync.c 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 Change-Id: Idd7c4f81c1a1751c595c86b10493aab6f959059f Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55154 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Timothy Day Reviewed-by: Oleg Drokin --- lustre/utils/lustre_rsync.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lustre/utils/lustre_rsync.c b/lustre/utils/lustre_rsync.c index 07e8eea..9ada5c3 100644 --- a/lustre/utils/lustre_rsync.c +++ b/lustre/utils/lustre_rsync.c @@ -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++; -- 1.8.3.1