[rtems commit] IMFS: Fix NULL pointer access

Sebastian Huber sebh at rtems.org
Mon Mar 18 15:22:04 UTC 2013


Module:    rtems
Branch:    master
Commit:    6d9ab345e26377e920df91e83c5987f8c2b27f38
Changeset: http://git.rtems.org/rtems/commit/?id=6d9ab345e26377e920df91e83c5987f8c2b27f38

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Mar 18 15:19:35 2013 +0100

IMFS: Fix NULL pointer access

---

 cpukit/libfs/src/imfs/memfile.c |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/cpukit/libfs/src/imfs/memfile.c b/cpukit/libfs/src/imfs/memfile.c
index 901ebc6..b467ae9 100644
--- a/cpukit/libfs/src/imfs/memfile.c
+++ b/cpukit/libfs/src/imfs/memfile.c
@@ -39,7 +39,7 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
    unsigned int   block
 );
 
-MEMFILE_STATIC int IMFS_memfile_remove_block(
+MEMFILE_STATIC void IMFS_memfile_remove_block(
    IMFS_jnode_t  *the_jnode,
    unsigned int   block
 );
@@ -273,6 +273,9 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
    * Obtain the pointer for the specified block number
    */
   block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 );
+  if ( !block_entry_ptr )
+    return 1;
+
   if ( *block_entry_ptr )
     return 0;
 
@@ -297,7 +300,7 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
  *         block from the middle of a file would be exceptionally
  *         dangerous and the results unpredictable.
  */
-MEMFILE_STATIC int IMFS_memfile_remove_block(
+MEMFILE_STATIC void IMFS_memfile_remove_block(
    IMFS_jnode_t  *the_jnode,
    unsigned int   block
 )
@@ -306,13 +309,11 @@ MEMFILE_STATIC int IMFS_memfile_remove_block(
   block_p  ptr;
 
   block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
-  IMFS_assert( block_ptr );
-
-  ptr = *block_ptr;
-  *block_ptr = 0;
-  memfile_free_block( ptr );
-
-  return 1;
+  if ( block_ptr ) {
+    ptr = *block_ptr;
+    *block_ptr = 0;
+    memfile_free_block( ptr );
+  }
 }
 
 /*




More information about the vc mailing list