summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/char/char.c2
-rw-r--r--src/char/geoip.c3
-rw-r--r--src/common/mapindex.c2
3 files changed, 4 insertions, 3 deletions
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;
}
diff --git a/src/common/mapindex.c b/src/common/mapindex.c
index 0d8a69726..79125e010 100644
--- a/src/common/mapindex.c
+++ b/src/common/mapindex.c
@@ -126,7 +126,7 @@ unsigned short mapindex_name2id(const char* name) {
}
const char* mapindex_id2name_sub(unsigned short id,const char *file, int line, const char *func) {
- if (id > MAX_MAPINDEX || !mapindex_exists(id)) {
+ if (id >= MAX_MAPINDEX || !mapindex_exists(id)) {
ShowDebug("mapindex_id2name: Requested name for non-existant map index [%d] in cache. %s:%s:%d\n", id,file,func,line);
return mapindex->list[0].name; // dummy empty string so that the callee doesn't crash
}