Versuch mal

if( *source == 0 )

und

*source = bmap_create(file);