]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
misc: fix valgrind complaints
authorDarrick J. Wong <djwong@kernel.org>
Fri, 12 Feb 2021 22:23:05 +0000 (17:23 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 12 Feb 2021 22:23:05 +0000 (17:23 -0500)
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 <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libhandle/handle.c
scrub/inodes.c
scrub/spacemap.c

index 5c1686b3968dc706fd682b8f4c4d0efcdfdafc06..27abc6b2a50c3cf64449e866b42d7d93f6c1504b 100644 (file)
@@ -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;
index bdc12df314798f7739ce6243507971dc7729f162..638651139a653de22a47f757d7f12bb98aad0dbe 100644 (file)
@@ -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;
index 9653916de141d3af57deab9994144f6662525ea9..a5508d568a4386d2be40ec7e9c57d47f64d65cbd 100644 (file)
@@ -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;