diff --git a/percona_pg_telemetry.c b/percona_pg_telemetry.c index 03eebe2..55e98e1 100644 --- a/percona_pg_telemetry.c +++ b/percona_pg_telemetry.c @@ -640,7 +640,7 @@ write_pg_settings(void) { char *str = SPI_getvalue(tuptable->vals[row_count], tuptable->tupdesc, col_count); - char *value = (str == NULL || str[0] == '\0') ? null_value : str; + char *value = (str == NULL || str[0] == '\0') ? null_value : str; flags = (col_count == tuptable->tupdesc->natts) ? (PT_JSON_KEY_VALUE | PT_JSON_LAST_ELEMENT) : PT_JSON_KEY_VALUE; diff --git a/pt_json.c b/pt_json.c index ff90992..c504f8c 100644 --- a/pt_json.c +++ b/pt_json.c @@ -71,7 +71,8 @@ construct_json_block(char *buf, size_t buf_sz, char *key, char *raw_value, int f char *value = NULL; char str[2048] = {0}; char fmt_str[2048] = {0}; - char comma = (flags & PT_JSON_LAST_ELEMENT) ? '\0' : ','; + char comma = (flags & PT_JSON_LAST_ELEMENT) ? '\0' : ','; + /* Make the string empty so that we can always concat. */ buf[0] = '\0'; @@ -92,7 +93,8 @@ construct_json_block(char *buf, size_t buf_sz, char *key, char *raw_value, int f if (flags & PT_JSON_VALUE) { - char v[2048] = {0}; + char v[2048] = {0}; + snprintf(v, sizeof(v), "\"%s\"%c", value, comma); strlcat(str, v, sizeof(str)); @@ -102,7 +104,7 @@ construct_json_block(char *buf, size_t buf_sz, char *key, char *raw_value, int f if (flags & PT_JSON_ARRAY_START) { - strlcat(str, "[", sizeof(str)); + strlcat(str, "[", sizeof(str)); PT_FORMAT_JSON(fmt_str, sizeof(fmt_str), str, (*json_file_indent)); strlcat(buf, fmt_str, buf_sz);