From 2f3fa7ce38a527554595db9bc51c465da6fb894c Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 2 Jan 2019 14:46:11 -0800 Subject: [PATCH] matrix-data: Only use as many bytes as necessary to initialize string. Using strncpy() of a 9-character string to initialize an 8-byte field is odd and seems likely to have been a mistake, although a harmless one. This makes the situation seem less odd. Found by GCC 4.9. --- src/language/data-io/matrix-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/language/data-io/matrix-data.c b/src/language/data-io/matrix-data.c index 97d14739b3..81e687983c 100644 --- a/src/language/data-io/matrix-data.c +++ b/src/language/data-io/matrix-data.c @@ -214,7 +214,7 @@ preprocess (struct casereader *casereader0, const struct dictionary *dict, void struct ccase *outcase = case_create (proto); union value *v = case_data_rw (outcase, mformat->rowtype); uint8_t *n = value_str_rw (v, ROWTYPE_WIDTH); - strncpy ((char *) n, "N ", ROWTYPE_WIDTH); + memcpy (n, "N ", ROWTYPE_WIDTH); blank_varname_column (outcase, mformat->varname); for (col = 0; col < mformat->n_continuous_vars; ++col) { -- 2.30.2