MT#55283 fix colliding use of temp buffer

closes #2054

Change-Id: I7943d4591f7fb9f08d079411b4b3c04cf96675e5
(cherry picked from commit cd5a77ab96)
(cherry picked from commit 687aa8a27a)
mr13.5.1
Richard Fuchs 1 week ago
parent 4f26d7c442
commit 1622535563

@ -2406,18 +2406,20 @@ err:
parser->list_add_str_dup(inner, &encstr); \
} while (0)
#define JSON_SET_NSTRING(a,b,c,...) do { \
int len = snprintf(tmp,sizeof(tmp), c, __VA_ARGS__); \
char tmp1[128]; \
int len = snprintf(tmp1, sizeof(tmp1), c, __VA_ARGS__); \
char enc[len * 3 + 1]; \
str encstr = parser->escape(enc, tmp, len); \
snprintf(tmp,sizeof(tmp), a,b); \
parser->dict_add_str_dup(inner, tmp, &encstr); \
str encstr = parser->escape(enc, tmp1, len); \
char tmp2[256]; \
snprintf(tmp2, sizeof(tmp2), a, b); \
parser->dict_add_str_dup_dup(inner, tmp2, &encstr); \
} while (0)
#define JSON_SET_NSTRING_CSTR(a,b,d) JSON_SET_NSTRING_LEN(a, b, strlen(d), d)
#define JSON_SET_NSTRING_LEN(a,b,l,d) do { \
char enc[l * 3 + 1]; \
str encstr = parser->escape(enc, d, l); \
snprintf(tmp,sizeof(tmp), a,b); \
parser->dict_add_str_dup(inner, tmp, &encstr); \
parser->dict_add_str_dup_dup(inner, tmp, &encstr); \
} while (0)
#define JSON_SET_SIMPLE(a,c,...) do { \
int len = snprintf(tmp,sizeof(tmp), c, __VA_ARGS__); \
@ -2455,7 +2457,6 @@ static int json_update_sdes_params(const ng_parser_t *parser, parser_arg inner,
unsigned int unique_id,
const char *k, sdes_q *q)
{
char tmp[2048];
unsigned int iter = 0;
char keybuf[32];
const char *key = k;

Loading…
Cancel
Save