MT#55283 fix colliding use of temp buffer

closes #2054

Change-Id: I7943d4591f7fb9f08d079411b4b3c04cf96675e5
pull/2062/head
Richard Fuchs 1 month ago
parent b1ac55c844
commit cd5a77ab96

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

Loading…
Cancel
Save