fbarray: fix log message on truncation error
authorAnatoly Burakov <anatoly.burakov@intel.com>
Fri, 19 Feb 2021 17:54:45 +0000 (17:54 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 4 Mar 2021 10:37:05 +0000 (11:37 +0100)
When file truncation fails, the log message attempts to print a path of
file we failed to truncate, but this path was never set to anything and,
what's worse, was uninitialized. Fix it by passing path from the caller.

Coverity issue: 366122
Fixes: c44d09811b40 ("eal: add shared indexed file-backed array")
Cc: stable@dpdk.org
Reported-by: Andrew Boyer <aboyer@pensando.io>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
lib/librte_eal/common/eal_common_fbarray.c

index d974f3d..592ec58 100644 (file)
@@ -81,9 +81,8 @@ get_used_mask(void *data, unsigned int elt_sz, unsigned int len)
 }
 
 static int
-resize_and_map(int fd, void *addr, size_t len)
+resize_and_map(int fd, const char *path, void *addr, size_t len)
 {
-       char path[PATH_MAX];
        void *map_addr;
 
        if (eal_file_truncate(fd, len)) {
@@ -792,7 +791,7 @@ rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,
                if (eal_file_lock(fd, EAL_FLOCK_SHARED, EAL_FLOCK_RETURN))
                        goto fail;
 
-               if (resize_and_map(fd, data, mmap_len))
+               if (resize_and_map(fd, path, data, mmap_len))
                        goto fail;
        }
        ma->addr = data;
@@ -895,7 +894,7 @@ rte_fbarray_attach(struct rte_fbarray *arr)
        if (eal_file_lock(fd, EAL_FLOCK_SHARED, EAL_FLOCK_RETURN))
                goto fail;
 
-       if (resize_and_map(fd, data, mmap_len))
+       if (resize_and_map(fd, path, data, mmap_len))
                goto fail;
 
        /* store our new memory area */