@@ -190,18 +190,17 @@ static int get_columns_pgsql(struct ulogd_pluginstance *upi)
}
for (i = 0; i < PQntuples(pi->pgres); i++) {
- char buf[ULOGD_MAX_KEYLEN+1];
char *underscore;
+ snprintf(upi->input.keys[i].name,
+ sizeof(upi->input.keys[i].name),
+ "%s", PQgetvalue(pi->pgres, i, 0));
/* replace all underscores with dots */
- strncpy(buf, PQgetvalue(pi->pgres, i, 0), ULOGD_MAX_KEYLEN);
- while ((underscore = strchr(buf, '_')))
+ for (underscore = upi->input.keys[i].name;
+ (underscore = strchr(underscore, '_')); )
*underscore = '.';
- DEBUGP("field '%s' found: ", buf);
-
- /* add it to list of input keys */
- strncpy(upi->input.keys[i].name, buf, ULOGD_MAX_KEYLEN);
+ DEBUGP("field '%s' found\n", upi->input.keys[i].name);
}
/* ID (starting by '.') is a sequence */
Replace `strncpy` with `snprintf`. Remove superfluous intermediate buffer. Signed-off-by: Jeremy Sowden <jeremy@azazel.net> --- output/pgsql/ulogd_output_PGSQL.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)