From bc63c0f48746d246e0c2fb755515fa05077a3bfd Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Wed, 8 Aug 2018 15:11:02 +0100 Subject: [PATCH 6/6] romfs/tools: Silence more compiler warnings with GCC 8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RH-Author: Laurent Vivier Message-id: <20180808151102.11232-7-lvivier@redhat.com> Patchwork-id: 81682 O-Subject: [RHEL-8.0 SLOF PATCH 6/6] romfs/tools: Silence more compiler warnings with GCC 8.1 Bugzilla: 1613619 RH-Acked-by: Thomas Huth RH-Acked-by: Laszlo Ersek RH-Acked-by: David Gibson From: Thomas Huth GCC 8 complains about the following usages of strncpy, too: create_crc.c:86:3: warning: ‘strncpy’ specified bound 16 equals destination size [-Wstringop-truncation] strncpy(uHeader.stHeader.version, pcVersion, 16); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ create_crc.c:84:3: warning: ‘strncpy’ specified bound 16 equals destination size [-Wstringop-truncation] strncpy(uHeader.stHeader.version, pcVersion, 16); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Let's work around the issue by using memcpy instead. Signed-off-by: Thomas Huth Signed-off-by: Alexey Kardashevskiy (cherry picked from commit d8a9354c2a351360da438826c95cf78efcaaf1b0) Signed-off-by: Laurent Vivier Signed-off-by: Danilo C. L. de Paula --- romfs/tools/create_crc.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c index 475b184..abc373b 100644 --- a/romfs/tools/create_crc.c +++ b/romfs/tools/create_crc.c @@ -32,6 +32,11 @@ static uint64_t ui64globalHeaderSize = 0; /* flag to filter detect the header in buildDataStream() */ static int iglobalHeaderFlag = 1; +static size_t min(size_t a, size_t b) +{ + return a < b ? a : b; +} + /** * Build the file image and store it as Data Stream of bytes * calculate a first CRC for the first file and @@ -80,13 +85,13 @@ createHeaderImage(int notime) }; /* read driver info */ - if (NULL != (pcVersion = getenv("DRIVER_NAME"))) { - strncpy(stHeader.version, pcVersion, 16); - } else if (NULL != (pcVersion = getenv("USER"))) { - strncpy(stHeader.version, pcVersion, 16); - } else if (pcVersion == NULL) { - strncpy(stHeader.version, "No known user!", 16); - } + pcVersion = getenv("DRIVER_NAME"); + if (!pcVersion) + pcVersion = getenv("USER"); + if (!pcVersion) + pcVersion = "unknown"; + memcpy(stHeader.version, pcVersion, + min(strlen(pcVersion), sizeof(stHeader.version))); if (!notime) { /* read time and write it into data stream */ -- 1.8.3.1