GeoIP could accept broken downloads

GeoIp is using an unsafe string comparison to compare the hash value of the downloaded file with the md5 hash provided by the resource. In some cases this might result in accepting a broken download.