commit ac7009abd228362042edd10e6b12556ddef35171
Author: Bruce Momjian <bruce@momjian.us>
Date:   Fri Jan 9 12:12:30 2015 -0500

    pg_upgrade:  fix one-byte per empty db memory leak
    
    Report by Tatsuo Ishii, Coverity

diff --git a/contrib/pg_upgrade/relfilenode.c b/contrib/pg_upgrade/relfilenode.c
new file mode 100644
index 70753f2..423802b
*** a/contrib/pg_upgrade/relfilenode.c
--- b/contrib/pg_upgrade/relfilenode.c
*************** transfer_all_new_dbs(DbInfoArr *old_db_a
*** 110,119 ****
  			pg_fatal("old database \"%s\" not found in the new cluster\n",
  					 old_db->db_name);
  
- 		n_maps = 0;
  		mappings = gen_db_file_maps(old_db, new_db, &n_maps, old_pgdata,
  									new_pgdata);
- 
  		if (n_maps)
  		{
  			print_maps(mappings, n_maps, new_db->db_name);
--- 110,117 ----
*************** transfer_all_new_dbs(DbInfoArr *old_db_a
*** 123,131 ****
  #endif
  			transfer_single_new_db(pageConverter, mappings, n_maps,
  								   old_tablespace);
- 
- 			pg_free(mappings);
  		}
  	}
  
  	return;
--- 121,129 ----
  #endif
  			transfer_single_new_db(pageConverter, mappings, n_maps,
  								   old_tablespace);
  		}
+ 		/* We allocate something even for n_maps == 0 */
+ 		pg_free(mappings);
  	}
  
  	return;
