Problem reported by Philipp Stephani (Bug#31556).
* src/lread.c (read_vector): When load_force_doc_strings, check
for byte code vectors that are invalid because they are too short.
* test/src/lread-tests.el (lread-invalid-bytecodes): New test.
tem = read_list (1, readcharfun);
len = Flength (tem);
+ if (bytecodeflag && XFASTINT (len) <= COMPILED_STACK_DEPTH)
+ error ("Invalid byte code");
vector = Fmake_vector (len, Qnil);
- size = ASIZE (vector);
+ size = XFASTINT (len);
ptr = XVECTOR (vector)->contents;
for (i = 0; i < size; i++)
{
;; bug was fixed.
(eval-buffer))))
+(ert-deftest lread-invalid-bytecodes ()
+ (should-error
+ (let ((load-force-doc-strings t)) (read "#[0 \"\"]"))))
+
;;; lread-tests.el ends here