Changeset b3b8add4 in rtems


Ignore:
Timestamp:
Feb 16, 2010, 1:47:46 AM (10 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
ee9d25de
Parents:
fcc69714
Message:

2010-02-16 Chris Johns <chrisj@…>

  • libcsupport/src/open.c: Tighten the open handler check.

2010-02-16 Sebastian Huber <sebastian.huber@…>

  • libcsupport/src/rmdir.c, libcsupport/src/unlink.c: Free the allocated pathloc.
Location:
cpukit
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    rfcc69714 rb3b8add4  
     12010-02-16      Chris Johns <chrisj@rtems.org>
     2
     3        * libcsupport/src/open.c: Tighten the open handler check.
     4
     52010-02-16      Sebastian Huber <sebastian.huber@embedded-brains.de>
     6
     7        * libcsupport/src/rmdir.c, libcsupport/src/unlink.c: Free the
     8        allocated pathloc.
     9       
    1102010-02-01      Chris Johns <chrisj@rtems.org>
    211
  • cpukit/libcsupport/src/open.c

    rfcc69714 rb3b8add4  
    159159  iop->pathinfo   = loc;
    160160
    161   if ( !iop->handlers->open_h ) {
     161  if ( !iop->handlers || !iop->handlers->open_h ) {
    162162    rc = ENOTSUP;
    163163    goto done;
  • cpukit/libcsupport/src/rmdir.c

    rfcc69714 rb3b8add4  
    3535  int                               i;
    3636  int                               result;
     37  bool                              free_parentloc = false;
    3738
    3839  /*
     
    5152    if ( result != 0 )
    5253      return -1;
     54
     55    free_parentloc = true;
    5356  }
    5457
     
    6467                                                    0, &loc, false );
    6568  if ( result != 0 ) {
    66     rtems_filesystem_freenode( &parentloc );
     69    if ( free_parentloc )
     70      rtems_filesystem_freenode( &parentloc );
    6771    return -1;
    6872  }
     
    7478  if ( !loc.ops->node_type_h ){
    7579    rtems_filesystem_freenode( &loc );
    76     rtems_filesystem_freenode( &parentloc );
     80    if ( free_parentloc )
     81      rtems_filesystem_freenode( &parentloc );
    7782    rtems_set_errno_and_return_minus_one( ENOTSUP );
    7883  }
     
    8085  if (  (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){
    8186    rtems_filesystem_freenode( &loc );
    82     rtems_filesystem_freenode( &parentloc );
     87    if ( free_parentloc )
     88      rtems_filesystem_freenode( &parentloc );
    8389    rtems_set_errno_and_return_minus_one( ENOTDIR );
    8490  }
     
    9096  if ( !loc.handlers->rmnod_h ){
    9197    rtems_filesystem_freenode( &loc );
    92     rtems_filesystem_freenode( &parentloc );
     98    if ( free_parentloc )
     99      rtems_filesystem_freenode( &parentloc );
    93100    rtems_set_errno_and_return_minus_one( ENOTSUP );
    94101  }
     
    97104
    98105  rtems_filesystem_freenode( &loc );
    99   rtems_filesystem_freenode( &parentloc );
     106  if ( free_parentloc )
     107    rtems_filesystem_freenode( &parentloc );
    100108
    101109  return result;
  • cpukit/libcsupport/src/unlink.c

    rfcc69714 rb3b8add4  
    3131  int                               i;
    3232  int                               result;
     33  bool                              free_parentloc = false;
    3334
    3435  /*
     
    4748    if ( result != 0 )
    4849      return -1;
     50
     51    free_parentloc = true;
    4952  }
    5053
     
    6063                                                    0, &loc, false );
    6164  if ( result != 0 ) {
    62     rtems_filesystem_freenode( &parentloc );
     65    if ( free_parentloc )
     66      rtems_filesystem_freenode( &parentloc );
    6367    return -1;
    6468  }
     
    6670  if ( !loc.ops->node_type_h ) {
    6771    rtems_filesystem_freenode( &loc );
    68     rtems_filesystem_freenode( &parentloc );
     72    if ( free_parentloc )
     73      rtems_filesystem_freenode( &parentloc );
    6974    rtems_set_errno_and_return_minus_one( ENOTSUP );
    7075  }
     
    7277  if (  (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) {
    7378    rtems_filesystem_freenode( &loc );
    74     rtems_filesystem_freenode( &parentloc );
     79    if ( free_parentloc )
     80      rtems_filesystem_freenode( &parentloc );
    7581    rtems_set_errno_and_return_minus_one( EISDIR );
    7682  }
     
    7884  if ( !loc.ops->unlink_h ) {
    7985    rtems_filesystem_freenode( &loc );
    80     rtems_filesystem_freenode( &parentloc );
     86    if ( free_parentloc )
     87      rtems_filesystem_freenode( &parentloc );
    8188    rtems_set_errno_and_return_minus_one( ENOTSUP );
    8289  }
     
    8592
    8693  rtems_filesystem_freenode( &loc );
    87   rtems_filesystem_freenode( &parentloc );
     94  if ( free_parentloc )
     95    rtems_filesystem_freenode( &parentloc );
    8896
    8997  return result;
Note: See TracChangeset for help on using the changeset viewer.