Commit 384dfbde authored by Tom Lane's avatar Tom Lane

Fix unsafe use of strtol() on a non-null-terminated Text datum.

jsonb_set() could produce wrong answers or incorrect error reports, or in
the worst case even crash, when trying to convert a path-array element into
an integer for use as an array subscript.  Per report from Vitaly Burovoy.
Back-patch to 9.5 where the faulty code was introduced (in commit
c6947010).

Michael Paquier
parent 8320c625
......@@ -3873,7 +3873,7 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
/* pick correct index */
if (level < path_len && !path_nulls[level])
{
char *c = VARDATA_ANY(path_elems[level]);
char *c = TextDatumGetCString(path_elems[level]);
long lindex;
errno = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment