Author: sveinung Date: Thu May 11 08:26:13 2017 New Revision: 35502 URL: http://svn.gna.org/viewcvs/freeciv?rev=35502&view=rev Log: Fix trade route memory leak.
Free the memory of the trade route structs canceled by the destruction of a city or player. Reported by Valgrind. See hrm Bug #658824 Modified: branches/S3_0/server/citytools.c branches/S3_0/server/plrhand.c Modified: branches/S3_0/server/citytools.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S3_0/server/citytools.c?rev=35502&r1=35501&r2=35502&view=diff ============================================================================== --- branches/S3_0/server/citytools.c (original) +++ branches/S3_0/server/citytools.c Thu May 11 08:26:13 2017 @@ -1743,7 +1743,11 @@ } trade_routes_iterate_safe(pcity, proute) { - remove_trade_route(pcity, proute, TRUE, TRUE); + struct trade_route *pback = remove_trade_route(pcity, proute, + TRUE, TRUE); + + FC_FREE(proute); + FC_FREE(pback); } trade_routes_iterate_safe_end; map_clear_border(pcenter); Modified: branches/S3_0/server/plrhand.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S3_0/server/plrhand.c?rev=35502&r1=35501&r2=35502&view=diff ============================================================================== --- branches/S3_0/server/plrhand.c (original) +++ branches/S3_0/server/plrhand.c Thu May 11 08:26:13 2017 @@ -1714,7 +1714,11 @@ * to point to a city removed by player_clear() */ city_list_iterate(pplayer->cities, pcity) { trade_routes_iterate_safe(pcity, proute) { - remove_trade_route(pcity, proute, TRUE, TRUE); + struct trade_route *pback = remove_trade_route(pcity, proute, + TRUE, TRUE); + + FC_FREE(proute); + FC_FREE(pback); } trade_routes_iterate_safe_end; } city_list_iterate_end; _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits