diff options
author | Thomas Huth <thuth@redhat.com> | 2018-07-23 15:19:44 +0200 |
---|---|---|
committer | Alexey Kardashevskiy <aik@ozlabs.ru> | 2018-07-24 16:59:26 +1000 |
commit | d8a9354c2a351360da438826c95cf78efcaaf1b0 (patch) | |
tree | af761a1e51b4cea817be3a210be1d7fa3d82218f /romfs | |
parent | 49482e06ea74652a70a8cd067b852cc142021c03 (diff) | |
download | SLOF-d8a9354c2a351360da438826c95cf78efcaaf1b0.zip SLOF-d8a9354c2a351360da438826c95cf78efcaaf1b0.tar.gz SLOF-d8a9354c2a351360da438826c95cf78efcaaf1b0.tar.bz2 |
romfs/tools: Silence more compiler warnings with GCC 8.1
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 <thuth@redhat.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'romfs')
-rw-r--r-- | romfs/tools/create_crc.c | 19 |
1 files 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 */ |