fbarray: check for open failure
[dpdk.git] / lib / librte_eal / common / eal_common_fbarray.c
index 9d9d67d..2263f4c 100644 (file)
@@ -471,7 +471,7 @@ rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,
        memset(data, 0, mmap_len);
 
        /* populate data structure */
-       snprintf(arr->name, sizeof(arr->name), "%s", name);
+       strlcpy(arr->name, name, sizeof(arr->name));
        arr->data = data;
        arr->len = len;
        arr->elt_sz = elt_sz;
@@ -594,6 +594,11 @@ rte_fbarray_destroy(struct rte_fbarray *arr)
        eal_get_fbarray_path(path, sizeof(path), arr->name);
 
        fd = open(path, O_RDONLY);
+       if (fd < 0) {
+               RTE_LOG(ERR, EAL, "Could not open fbarray file: %s\n",
+                       strerror(errno));
+               return -1;
+       }
        if (flock(fd, LOCK_EX | LOCK_NB)) {
                RTE_LOG(DEBUG, EAL, "Cannot destroy fbarray - another process is using it\n");
                rte_errno = EBUSY;