akheron / jansson

C library for encoding, decoding and manipulating JSON data
http://www.digip.org/jansson/
Other
3.02k stars 807 forks source link

Fix dump_string func return value check #649

Open devil-k opened 1 year ago

devil-k commented 1 year ago

callstack

jsonp_malloc
strbuffer_append_bytes
dump_to_strbuffer
dump_string
do_dump
json_dump_callback
json_dumps

if malloc func return null then dump_string func return -1.

but, do_dump func not check return value. dump.c

                    dump_string(key->key, key->len, dump, data, flags);
                    if (dump(separator, separator_length, data) ||
                        do_dump(value, flags, depth + 1, parents, dump, data)) {
                        jsonp_free(keys);
                        return -1;
                    }

json_dumps func return invalid value {"id": 59, ": "test", "col3": 0} column blank..

changes

do_dump func check return value.