changeset 14510:c20de00a66a9

avoid memory error in 'octave --eval 0' (bug #36038) * lex.ll (delete_buffer): Set yyin to 0 if no current buffer remains after deleting buf.
author Max Brister <max@2bass.com>
date Fri, 30 Mar 2012 13:46:57 -0400
parents a88f8e4fae56
children cdc752aba928
files src/lex.ll
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lex.ll	Thu Mar 29 19:13:21 2012 -0400
+++ b/src/lex.ll	Fri Mar 30 13:46:57 2012 -0400
@@ -1417,6 +1417,10 @@
 delete_buffer (YY_BUFFER_STATE buf)
 {
   yy_delete_buffer (buf);
+
+  // Prevent invalid yyin from being used by yyrestart.
+  if (! current_buffer ())
+    yyin = 0; 
 }
 
 // Delete all buffers from the stack.