aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorPhilipp Stephani2020-06-29 12:32:56 +0200
committerPhilipp Stephani2020-06-29 12:32:56 +0200
commit59e768d64ad97782249fda9e53b6adc94c6d0130 (patch)
tree3221ba10b639751b10a067c1fab8017830ab46f2 /test/src
parentcce00bef0313bc42beee8096d9312313889dc92d (diff)
downloademacs-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.el12
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