Changeset 13863

Show
Ignore:
Timestamp:
02/23/08 13:23:54 (3 months ago)
Author:
rouault
Message:

Test for NULL pointer after VSIFOpenL

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/gdal/frmts/aaigrid/aaigriddataset.cpp

    r13588 r13863  
    834834    { 
    835835        char                    *pszDirname, *pszBasename; 
    836         const char              *pszPrjFilename; 
     836        char                    *pszPrjFilename; 
    837837        char                    *pszESRIProjection = NULL; 
    838838        FILE                    *fp; 
     
    842842        pszBasename = CPLStrdup( CPLGetBasename(pszFilename) ); 
    843843 
    844         pszPrjFilename = CPLFormFilename( pszDirname, pszBasename, "prj" ); 
     844        pszPrjFilename = CPLStrdup( CPLFormFilename( pszDirname, pszBasename, "prj" ) ); 
    845845        fp = VSIFOpenL( pszPrjFilename, "wt" ); 
    846          
    847         oSRS.importFromWkt( (char **) &pszOriginalProjection ); 
    848         oSRS.morphToESRI(); 
    849         oSRS.exportToWkt( &pszESRIProjection ); 
    850         VSIFWriteL( pszESRIProjection, 1, strlen(pszESRIProjection), fp ); 
    851  
    852         VSIFCloseL( fp ); 
     846        if (fp != NULL) 
     847        { 
     848            oSRS.importFromWkt( (char **) &pszOriginalProjection ); 
     849            oSRS.morphToESRI(); 
     850            oSRS.exportToWkt( &pszESRIProjection ); 
     851            VSIFWriteL( pszESRIProjection, 1, strlen(pszESRIProjection), fp ); 
     852 
     853            VSIFCloseL( fp ); 
     854            CPLFree( pszESRIProjection ); 
     855        } 
     856        else 
     857        { 
     858            CPLError( CE_Failure, CPLE_FileIO,  
     859                      "Unable to create file %s.\n", pszPrjFilename ); 
     860        } 
    853861        CPLFree( pszDirname ); 
    854862        CPLFree( pszBasename ); 
    855         CPLFree( pszESRIProjection ); 
     863        CPLFree( pszPrjFilename ); 
    856864    } 
    857865