]> git.sesse.net Git - vlc/blobdiff - src/misc/block.c
Do not leak the IPC helper - might fix #1598
[vlc] / src / misc / block.c
index 5123adc370080e5778c3605e2958d4a4c6c85a19..a757e3cf2d487753602ca57282b3e905d2940095 100644 (file)
@@ -28,7 +28,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <sys/stat.h>
 #include "vlc_block.h"
 
@@ -106,7 +106,13 @@ block_t *block_Alloc( size_t i_size )
 block_t *block_Realloc( block_t *p_block, ssize_t i_prebody, size_t i_body )
 {
     block_sys_t *p_sys = (block_sys_t *)p_block;
-    ssize_t i_buffer_size;
+    ssize_t i_buffer_size = i_prebody + i_body;
+
+    if( i_buffer_size <= 0 )
+    {
+        block_Release( p_block );
+        return NULL;
+    }
 
     if( p_block->pf_release != BlockRelease )
     {
@@ -120,14 +126,6 @@ block_t *block_Realloc( block_t *p_block, ssize_t i_prebody, size_t i_body )
         p_block = p_dup;
     }
 
-    i_buffer_size = i_prebody + i_body;
-
-    if( i_buffer_size <= 0 )
-    {
-        block_Release( p_block );
-        return NULL;
-    }
-
     /* Adjust reserved header if there is enough room */
     if( p_block->p_buffer - i_prebody > p_sys->p_allocated_buffer &&
         p_block->p_buffer - i_prebody < p_sys->p_allocated_buffer +
@@ -237,8 +235,14 @@ block_t *block_mmap_Alloc (void *addr, size_t length)
     block->length = length;
     return &block->self;
 }
+#else
+block_t *block_mmap_Alloc (void *addr, size_t length)
+{
+    (void)addr; (void)length; return NULL;
+}
 #endif
 
+
 #ifdef WIN32
 static
 ssize_t pread (int fd, void *buf, size_t count, off_t offset)