I am having trouble when loading files from the disk because I keep getting 'Segmentation fault' errors which I know is something to do with the memory and I have narrowed it down to this function in my code:
Code: Select all
MEMORY *mopen( char *filename, unsigned char relative_path )
{
FILE *f;
char fname[ MAX_PATH ] = {""};
if( relative_path )
{
get_file_path( getenv( "FILESYSTEM" ), fname );
strcat( fname, filename );
}
else strcpy( fname, filename );
f = fopen( fname, "rb" );
if( !f ) return NULL;
MEMORY *memory = ( MEMORY * ) calloc( 1, sizeof( MEMORY ) );
strcpy( memory->filename, fname );
fseek( f, 0, SEEK_END );
memory->size = ftell( f );
fseek( f, 0, SEEK_SET );
memory->buffer = ( unsigned char * ) calloc( 1, memory->size + 1 );
fread( memory->buffer, memory->size, 1, f );
memory->buffer[ memory->size ] = 0;
fclose( f );
return memory;