Index: server/barbarian.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/barbarian.c,v retrieving revision 1.55 diff -u -r1.55 barbarian.c --- server/barbarian.c 27 Sep 2002 12:32:45 -0000 1.55 +++ server/barbarian.c 19 Aug 2004 16:45:02 -0000 @@ -100,8 +100,8 @@ } players_iterate_end; if( newplayer >= MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS ) { - freelog( LOG_FATAL, "Too many players?"); - abort(); + freelog(LOG_ERROR, "Too many players for barbarian.c (%d)", newplayer); + return NULL; } barbarians = &game.players[newplayer]; @@ -195,6 +195,9 @@ unit_cnt = 3 + myrand(4); barbarians = create_barbarian_player(TRUE); + if (barbarians == NULL) { + return FALSE; + } me = barbarians->player_no; for( i=0; icities) > UPRISE_CIV_MOST ) uprise = 3; for( i=0; i < myrand(3) + uprise*(game.barbarianrate); i++) { @@ -371,6 +377,9 @@ else { /* sea raiders - their units will be veteran */ barbarians = create_barbarian_player(FALSE); + if (barbarians == NULL) { + return; + } boat = find_a_unit_type(L_BARBARIAN_BOAT,-1); (void) create_unit(barbarians, xu, yu, boat, TRUE, 0, -1); cap = get_transporter_capacity(unit_list_get(&map_get_tile(xu, yu)->units, 0));