Fix IsValidJsonNumber() to notice trailing non-alphanumeric garbage.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: aa223a037be2935dd6e335d94550dc3f53262479
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-02-03T06:39:08Z
Releases: 9.4.6
Fix IsValidJsonNumber() to notice trailing non-alphanumeric garbage.

Commit e09996ff8dee3f70 was one brick shy of a load: it didn't insist
that the detected JSON number be the whole of the supplied string.
This allowed inputs such as "2016-01-01" to be misdetected as valid JSON
numbers.  Per bug #13906 from Dmitry Ryabov.

In passing, be more wary of zero-length input (I'm not sure this can
happen given current callers, but better safe than sorry), and do some
minor cosmetic cleanup.

Files

PathChange+/−
contrib/hstore/expected/hstore.out modified +8 −8
contrib/hstore/sql/hstore.sql modified +2 −2
src/backend/utils/adt/json.c modified +33 −19