Commit fd10a0a3 authored by Matteo Croce's avatar Matteo Croce
Browse files

doimage: get rid of non null terminated strings by strncpy


Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
parent 9068257e
...@@ -216,7 +216,7 @@ void usage(void) ...@@ -216,7 +216,7 @@ void usage(void)
} }
/* globals */ /* globals */
options_t opts = { static options_t opts = {
.bin_ext_file = "NA", .bin_ext_file = "NA",
.sec_cfg_file = "NA", .sec_cfg_file = "NA",
.sec_opts = 0, .sec_opts = 0,
...@@ -1578,9 +1578,9 @@ error: ...@@ -1578,9 +1578,9 @@ error:
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
char in_file[MAX_FILENAME+1]; char in_file[MAX_FILENAME+1] = { 0 };
char out_file[MAX_FILENAME+1]; char out_file[MAX_FILENAME+1] = { 0 };
char ext_file[MAX_FILENAME+1]; char ext_file[MAX_FILENAME+1] = { 0 };
FILE *in_fd = NULL; FILE *in_fd = NULL;
FILE *out_fd = NULL; FILE *out_fd = NULL;
int parse = 0; int parse = 0;
...@@ -1590,6 +1590,7 @@ int main(int argc, char *argv[]) ...@@ -1590,6 +1590,7 @@ int main(int argc, char *argv[])
int image_size; int image_size;
uint8_t *image_buf = NULL; uint8_t *image_buf = NULL;
int read; int read;
size_t len;
uint32_t nand_block_size_kb, mlc_nand; uint32_t nand_block_size_kb, mlc_nand;
/* Create temporary file for building extensions /* Create temporary file for building extensions
...@@ -1660,13 +1661,19 @@ int main(int argc, char *argv[]) ...@@ -1660,13 +1661,19 @@ int main(int argc, char *argv[])
if (optind >= argc) if (optind >= argc)
usage_err("missing input file name"); usage_err("missing input file name");
strncpy(in_file, argv[optind], MAX_FILENAME); len = strlen(argv[optind]);
if (len > MAX_FILENAME)
usage_err("file name too long");
memcpy(in_file, argv[optind], len);
optind++; optind++;
/* Output file must exist in non parse mode */ /* Output file must exist in non parse mode */
if (optind < argc) if (optind < argc) {
strncpy(out_file, argv[optind], MAX_FILENAME); len = strlen(argv[optind]);
else if (!parse) if (len > MAX_FILENAME)
usage_err("file name too long");
memcpy(out_file, argv[optind], len);
} else if (!parse)
usage_err("missing output file name"); usage_err("missing output file name");
/* open the input file */ /* open the input file */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment