Commit bbfa9d88 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Fix stack overflow in debug code: use heap for large allocations.

parent 781ebbeb
...@@ -203,7 +203,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -203,7 +203,6 @@ static int Open( vlc_object_t *p_this )
p_sys->b_seekable = VLC_FALSE; p_sys->b_seekable = VLC_FALSE;
# ifdef HAVE_MMAP # ifdef HAVE_MMAP
# ifndef __APPLE__
p_sys->pagemask = sysconf (_SC_PAGE_SIZE) - 1; p_sys->pagemask = sysconf (_SC_PAGE_SIZE) - 1;
/* Autodetect mmap() support */ /* Autodetect mmap() support */
...@@ -224,7 +223,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -224,7 +223,6 @@ static int Open( vlc_object_t *p_this )
else else
msg_Dbg (p_this, "mmap disabled (non regular file)"); msg_Dbg (p_this, "mmap disabled (non regular file)");
# endif # endif
# endif
#else #else
p_sys->b_seekable = !b_stdin; p_sys->b_seekable = !b_stdin;
# warning File size not known! # warning File size not known!
...@@ -440,7 +438,7 @@ static block_t *mmapBlock (access_t *p_access) ...@@ -440,7 +438,7 @@ static block_t *mmapBlock (access_t *p_access)
#ifndef NDEBUG #ifndef NDEBUG
/* Compare normal I/O with memory mapping */ /* Compare normal I/O with memory mapping */
char buf[block->self.i_buffer]; char *buf = malloc (block->self.i_buffer);
ssize_t i_read = read (p_sys->fd, buf, block->self.i_buffer); ssize_t i_read = read (p_sys->fd, buf, block->self.i_buffer);
if (i_read != (ssize_t)block->self.i_buffer) if (i_read != (ssize_t)block->self.i_buffer)
...@@ -448,6 +446,7 @@ static block_t *mmapBlock (access_t *p_access) ...@@ -448,6 +446,7 @@ static block_t *mmapBlock (access_t *p_access)
(unsigned)block->self.i_buffer); (unsigned)block->self.i_buffer);
if (memcmp (buf, block->self.p_buffer, block->self.i_buffer)) if (memcmp (buf, block->self.p_buffer, block->self.i_buffer))
msg_Err (p_access, "inconsistent data buffer"); msg_Err (p_access, "inconsistent data buffer");
free (buf);
#endif #endif
return &block->self; return &block->self;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment