From: Darrick J. Wong Date: Fri, 12 Feb 2021 22:23:05 +0000 (-0500) Subject: misc: fix valgrind complaints X-Git-Tag: v5.11.0-rc1~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bbfbf5ddfed8f9c8b0cd0389750d044faa9d7895;p=thirdparty%2Fxfsprogs-dev.git misc: fix valgrind complaints Zero the memory that we pass to the kernel via ioctls so that we never pass userspace heap/stack garbage around. This silences valgrind complaints about uninitialized padding areas. Signed-off-by: Darrick J. Wong Reviewed-by: Chandan Babu R Reviewed-by: Chaitanya Kulkarni Reviewed-by: Christoph Hellwig Signed-off-by: Eric Sandeen --- diff --git a/libhandle/handle.c b/libhandle/handle.c index 5c1686b39..27abc6b2a 100644 --- a/libhandle/handle.c +++ b/libhandle/handle.c @@ -235,8 +235,10 @@ obj_to_handle( { char hbuf [MAXHANSIZ]; int ret; - uint32_t handlen; - xfs_fsop_handlereq_t hreq; + uint32_t handlen = 0; + struct xfs_fsop_handlereq hreq = { }; + + memset(hbuf, 0, MAXHANSIZ); if (opcode == XFS_IOC_FD_TO_HANDLE) { hreq.fd = obj.fd; @@ -275,7 +277,7 @@ open_by_fshandle( { int fsfd; char *path; - xfs_fsop_handlereq_t hreq; + struct xfs_fsop_handlereq hreq = { }; if ((fsfd = handle_to_fsfd(fshanp, &path)) < 0) return -1; @@ -382,7 +384,7 @@ attr_list_by_handle( { int error, fd; char *path; - xfs_fsop_attrlist_handlereq_t alhreq; + struct xfs_fsop_attrlist_handlereq alhreq = { }; if ((fd = handle_to_fsfd(hanp, &path)) < 0) return -1; diff --git a/scrub/inodes.c b/scrub/inodes.c index bdc12df31..638651139 100644 --- a/scrub/inodes.c +++ b/scrub/inodes.c @@ -111,7 +111,7 @@ scan_ag_inodes( xfs_agnumber_t agno, void *arg) { - struct xfs_handle handle; + struct xfs_handle handle = { }; char descr[DESCR_BUFSZ]; struct xfs_inumbers_req *ireq; struct xfs_bulkstat_req *breq; diff --git a/scrub/spacemap.c b/scrub/spacemap.c index 9653916de..a5508d568 100644 --- a/scrub/spacemap.c +++ b/scrub/spacemap.c @@ -47,11 +47,10 @@ scrub_iterate_fsmap( int i; int error; - head = malloc(fsmap_sizeof(FSMAP_NR)); + head = calloc(1, fsmap_sizeof(FSMAP_NR)); if (!head) return errno; - memset(head, 0, sizeof(*head)); memcpy(head->fmh_keys, keys, sizeof(struct fsmap) * 2); head->fmh_count = FSMAP_NR;