crypto/scheduler: fix strncpy
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 29 Jan 2018 09:22:02 +0000 (09:22 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 31 Jan 2018 17:59:39 +0000 (18:59 +0100)
The coverity issue was not completely fixed, since strncpy
should not be called with max length.
Instead, snprintf is used as a safer option.

Coverity issue: 143431
Fixes: d040aca67170 ("crypto/scheduler: fix strings not null terminated")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
drivers/crypto/scheduler/rte_cryptodev_scheduler.c

index ccf68a0..140c8b4 100644 (file)
@@ -439,8 +439,8 @@ rte_cryptodev_scheduler_load_user_scheduler(uint8_t scheduler_id,
                                RTE_CRYPTODEV_NAME_MAX_LEN);
                return -EINVAL;
        }
-       strncpy(sched_ctx->name, scheduler->name,
-                       RTE_CRYPTODEV_SCHEDULER_NAME_MAX_LEN);
+       snprintf(sched_ctx->name, sizeof(sched_ctx->name), "%s",
+                       scheduler->name);
 
        if (strlen(scheduler->description) >
                        RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN - 1) {
@@ -449,8 +449,8 @@ rte_cryptodev_scheduler_load_user_scheduler(uint8_t scheduler_id,
                                RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN - 1);
                return -EINVAL;
        }
-       strncpy(sched_ctx->description, scheduler->description,
-                       RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN);
+       snprintf(sched_ctx->description, sizeof(sched_ctx->description), "%s",
+                       scheduler->description);
 
        /* load scheduler instance operations functions */
        sched_ctx->ops.config_queue_pair = scheduler->ops->config_queue_pair;