From 1ea16746b1330656e152278a7192e5b7adef0539 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 17 Jan 2015 22:36:52 +0300 Subject: Add some fixes to char server. Found by coverity scan. --- src/char/char.c | 2 +- src/char/geoip.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/char/char.c b/src/char/char.c index 1d9d1d65c..f1bacbeb3 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -1461,7 +1461,7 @@ bool char_char_slotchange(struct char_session_data *sd, int fd, unsigned short f struct mmo_charstatus char_dat; int from_id = 0; - if( from > MAX_CHARS || to > MAX_CHARS || ( sd->char_slots && to > sd->char_slots ) || sd->found_char[from] <= 0 ) + if( from >= MAX_CHARS || to >= MAX_CHARS || ( sd->char_slots && to > sd->char_slots ) || sd->found_char[from] <= 0 ) return false; if( !chr->mmo_char_fromsql(sd->found_char[from], &char_dat, false) ) // Only the short data is needed. diff --git a/src/char/geoip.c b/src/char/geoip.c index 4fe03ab07..e5b77af1f 100644 --- a/src/char/geoip.c +++ b/src/char/geoip.c @@ -78,7 +78,7 @@ const char* geoip_getcountry(uint32 ipnum) if (x >= GEOIP_COUNTRY_BEGIN) { x = x-GEOIP_COUNTRY_BEGIN; - if( x > GEOIP_MAX_COUNTRIES ) + if( x >= GEOIP_MAX_COUNTRIES ) return geoip_countryname[0]; return geoip_countryname[x]; @@ -133,6 +133,7 @@ void geoip_init(void) fno = fileno(db); if (fstat(fno, &bufa) < 0) { ShowError("geoip_readdb: Error stating GeoIP.dat! Error %d\n", errno); + fclose(db); geoip->final(false); return; } -- cgit v1.2.3-70-g09d2