examples/vhost_scsi: fix product id string termination
authorJacek Piasecki <jacekx.piasecki@intel.com>
Wed, 25 Oct 2017 10:07:18 +0000 (12:07 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 25 Oct 2017 10:16:51 +0000 (12:16 +0200)
Use snprintf instead strncpy to get safe null string termination.
There was possible to get not terminated string after strncpy operation.

Coverity issue: 158631
Fixes: db75c7af19bb ("examples/vhost_scsi: introduce a new sample app")
Cc: stable@dpdk.org
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
examples/vhost_scsi/scsi.c

index 54d3104..fd430ec 100644 (file)
@@ -307,7 +307,9 @@ vhost_bdev_scsi_inquiry_command(struct vhost_block_dev *bdev,
                strncpy((char *)inqdata->t10_vendor_id, "INTEL", 8);
 
                /* PRODUCT IDENTIFICATION */
-               strncpy((char *)inqdata->product_id, bdev->product_name, 16);
+               snprintf((char *)inqdata->product_id,
+                               RTE_DIM(inqdata->product_id), "%s",
+                               bdev->product_name);
 
                /* PRODUCT REVISION LEVEL */
                strncpy((char *)inqdata->product_rev, "0001", 4);