[vlc-devel] commit: Fix a stack smash in the lua module (vlc.read). (JP Dinger )

git version control git at videolan.org
Fri Jun 12 15:09:37 CEST 2009


vlc | branch: master | JP Dinger <jpd at videolan.org> | Fri Jun 12 15:05:56 2009 +0200| [fca44948a75de3d89f00502dc25cb18ae4760807] | committer: JP Dinger 

Fix a stack smash in the lua module (vlc.read).

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fca44948a75de3d89f00502dc25cb18ae4760807
---

 modules/misc/lua/demux.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules/misc/lua/demux.c b/modules/misc/lua/demux.c
index 140afa9..d7f4445 100644
--- a/modules/misc/lua/demux.c
+++ b/modules/misc/lua/demux.c
@@ -28,6 +28,8 @@
 # include "config.h"
 #endif
 
+#include <assert.h>
+
 #include <vlc_common.h>
 #include <vlc_demux.h>
 #include <vlc_url.h>
@@ -72,10 +74,12 @@ static int vlclua_demux_peek( lua_State *L )
 static int vlclua_demux_read( lua_State *L )
 {
     demux_t *p_demux = (demux_t *)vlclua_get_this( L );
-    uint8_t *p_read;
+    const uint8_t *p_read;
     int n = luaL_checkint( L, 1 );
-    int i_read = stream_Read( p_demux->s, &p_read, n );
+    int i_read = stream_Peek( p_demux->s, &p_read, n );
     lua_pushlstring( L, (const char *)p_read, i_read );
+    int i_seek = stream_Read( p_demux->s, NULL, i_read );
+    assert(i_read==i_seek);
     return 1;
 }
 




More information about the vlc-devel mailing list