[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r114459: Signal error when reading an empty byte-cod
From: |
Barry O'Reilly |
Subject: |
[Emacs-diffs] trunk r114459: Signal error when reading an empty byte-code object (Bug#15405) |
Date: |
Thu, 26 Sep 2013 03:48:05 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 114459
revision-id: address@hidden
parent: address@hidden
committer: Barry O'Reilly <address@hidden>
branch nick: trunk
timestamp: Wed 2013-09-25 23:46:47 -0400
message:
Signal error when reading an empty byte-code object (Bug#15405)
* lread.c (read1): signal error
* alloc.c (make_byte_code): eassert header size
(sweep_vectors): change an int to size_t
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/alloc.c alloc.c-20091113204419-o5vbwnq5f7feedwu-252
src/lread.c lread.c-20091113204419-o5vbwnq5f7feedwu-266
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-09-24 15:29:27 +0000
+++ b/src/ChangeLog 2013-09-26 03:46:47 +0000
@@ -1,3 +1,10 @@
+2013-09-26 Barry O'Reilly <address@hidden>
+
+ Signal error when reading an empty byte-code object (Bug#15405)
+ * lread.c (read1): signal error
+ * alloc.c (make_byte_code): eassert header size
+ (sweep_vectors): change an int to size_t
+
2013-09-24 Paul Eggert <address@hidden>
* dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
=== modified file 'src/alloc.c'
--- a/src/alloc.c 2013-09-24 06:43:20 +0000
+++ b/src/alloc.c 2013-09-26 03:46:47 +0000
@@ -2889,7 +2889,7 @@
free_this_block = 1;
else
{
- int tmp;
+ size_t tmp;
SETUP_ON_FREE_LIST (vector, total_bytes, tmp);
}
}
@@ -3132,6 +3132,8 @@
void
make_byte_code (struct Lisp_Vector *v)
{
+ /* Don't allow the global zero_vector to become a byte code object. */
+ eassert(0 < v->header.size);
if (v->header.size > 1 && STRINGP (v->u.contents[1])
&& STRING_MULTIBYTE (v->u.contents[1]))
/* BYTECODE-STRING must have been produced by Emacs 20.2 or the
=== modified file 'src/lread.c'
--- a/src/lread.c 2013-09-24 06:43:20 +0000
+++ b/src/lread.c 2013-09-26 03:46:47 +0000
@@ -2597,7 +2597,10 @@
build them using function calls. */
Lisp_Object tmp;
tmp = read_vector (readcharfun, 1);
- make_byte_code (XVECTOR (tmp));
+ struct Lisp_Vector* vec = XVECTOR (tmp);
+ if (vec->header.size==0)
+ invalid_syntax ("Empty byte-code object");
+ make_byte_code (vec);
return tmp;
}
if (c == '(')
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r114459: Signal error when reading an empty byte-code object (Bug#15405),
Barry O'Reilly <=