diff options
| author | Philipp Stephani | 2020-06-29 12:32:56 +0200 |
|---|---|---|
| committer | Philipp Stephani | 2020-06-29 12:32:56 +0200 |
| commit | 59e768d64ad97782249fda9e53b6adc94c6d0130 (patch) | |
| tree | 3221ba10b639751b10a067c1fab8017830ab46f2 /test/src | |
| parent | cce00bef0313bc42beee8096d9312313889dc92d (diff) | |
| download | emacs-59e768d64ad97782249fda9e53b6adc94c6d0130.tar.gz emacs-59e768d64ad97782249fda9e53b6adc94c6d0130.zip | |
Fix undefined behavior in json.c (Bug#42113)
* src/json.c (lisp_to_json_toplevel_1, Fjson_parse_string): Check
whether input strings are actually strings.
* test/src/json-tests.el (json-parse-string/wrong-type)
(json-serialize/wrong-hash-key-type): New regression tests.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/json-tests.el | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/src/json-tests.el b/test/src/json-tests.el index 7eeef885198..028f92f29d3 100644 --- a/test/src/json-tests.el +++ b/test/src/json-tests.el | |||
| @@ -296,5 +296,17 @@ Test with both unibyte and multibyte strings." | |||
| 296 | (1+ most-positive-fixnum) | 296 | (1+ most-positive-fixnum) |
| 297 | (1- most-negative-fixnum))))) | 297 | (1- most-negative-fixnum))))) |
| 298 | 298 | ||
| 299 | (ert-deftest json-parse-string/wrong-type () | ||
| 300 | "Check that Bug#42113 is fixed." | ||
| 301 | (skip-unless (fboundp 'json-parse-string)) | ||
| 302 | (should-error (json-parse-string 1) :type 'wrong-type-argument)) | ||
| 303 | |||
| 304 | (ert-deftest json-serialize/wrong-hash-key-type () | ||
| 305 | "Check that Bug#42113 is fixed." | ||
| 306 | (skip-unless (fboundp 'json-serialize)) | ||
| 307 | (let ((table (make-hash-table :test #'eq))) | ||
| 308 | (puthash 1 2 table) | ||
| 309 | (should-error (json-serialize table) :type 'wrong-type-argument))) | ||
| 310 | |||
| 299 | (provide 'json-tests) | 311 | (provide 'json-tests) |
| 300 | ;;; json-tests.el ends here | 312 | ;;; json-tests.el ends here |