arch/M68k: do not return reg_name if beyond limits (#1219)

* arch/M68k: do not return reg_name if beyond limits

(patch coming from radare2)

* arch: checks index when returning reg names
diff --git a/arch/AArch64/AArch64Mapping.c b/arch/AArch64/AArch64Mapping.c
index 6f5bbd7..4579a08 100644
--- a/arch/AArch64/AArch64Mapping.c
+++ b/arch/AArch64/AArch64Mapping.c
@@ -283,7 +283,7 @@
 const char *AArch64_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= ARM64_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/ARM/ARMMapping.c b/arch/ARM/ARMMapping.c
index 7689839..6043dfa 100644
--- a/arch/ARM/ARMMapping.c
+++ b/arch/ARM/ARMMapping.c
@@ -245,7 +245,7 @@
 const char *ARM_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= ARM_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
@@ -257,7 +257,7 @@
 const char *ARM_reg_name2(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= ARM_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps2))
 		return NULL;
 
 	return reg_name_maps2[reg].name;
diff --git a/arch/M680X/M680XInstPrinter.c b/arch/M680X/M680XInstPrinter.c
index 8373e8a..23f4cb5 100644
--- a/arch/M680X/M680XInstPrinter.c
+++ b/arch/M680X/M680XInstPrinter.c
@@ -299,7 +299,7 @@
 {
 #ifndef CAPSTONE_DIET
 
-	if (reg >= M680X_REG_ENDING)
+	if (reg >= ARR_SIZE(s_reg_names))
 		return NULL;
 
 	return s_reg_names[(int)reg];
diff --git a/arch/M68K/M68KInstPrinter.c b/arch/M68K/M68KInstPrinter.c
index 14a86e4..411e984 100644
--- a/arch/M68K/M68KInstPrinter.c
+++ b/arch/M68K/M68KInstPrinter.c
@@ -338,6 +338,9 @@
 #ifdef CAPSTONE_DIET
 	return NULL;
 #else
+	if (reg >= ARR_SIZE(s_reg_names)) {
+		return NULL;
+	}
 	return s_reg_names[(int)reg];
 #endif
 }
diff --git a/arch/Mips/MipsMapping.c b/arch/Mips/MipsMapping.c
index 01cfbc5..9f50836 100644
--- a/arch/Mips/MipsMapping.c
+++ b/arch/Mips/MipsMapping.c
@@ -201,7 +201,7 @@
 const char *Mips_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= MIPS_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/PowerPC/PPCMapping.c b/arch/PowerPC/PPCMapping.c
index 2b2d24c..ddfcc80 100644
--- a/arch/PowerPC/PPCMapping.c
+++ b/arch/PowerPC/PPCMapping.c
@@ -234,7 +234,7 @@
 const char *PPC_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= PPC_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/Sparc/SparcMapping.c b/arch/Sparc/SparcMapping.c
index 35c911e..f86fb33 100644
--- a/arch/Sparc/SparcMapping.c
+++ b/arch/Sparc/SparcMapping.c
@@ -112,7 +112,7 @@
 const char *Sparc_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= SPARC_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/SystemZ/SystemZMapping.c b/arch/SystemZ/SystemZMapping.c
index 8e58eaf..81160e5 100644
--- a/arch/SystemZ/SystemZMapping.c
+++ b/arch/SystemZ/SystemZMapping.c
@@ -57,7 +57,7 @@
 const char *SystemZ_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= SYSZ_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/TMS320C64x/TMS320C64xMapping.c b/arch/TMS320C64x/TMS320C64xMapping.c
index e09a49d..3a0223f 100644
--- a/arch/TMS320C64x/TMS320C64xMapping.c
+++ b/arch/TMS320C64x/TMS320C64xMapping.c
@@ -110,7 +110,7 @@
 const char *TMS320C64x_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= TMS320C64X_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;
diff --git a/arch/X86/X86Mapping.c b/arch/X86/X86Mapping.c
index 3fcd1bd..ede6b6d 100644
--- a/arch/X86/X86Mapping.c
+++ b/arch/X86/X86Mapping.c
@@ -828,7 +828,7 @@
 #ifndef CAPSTONE_DIET
 	cs_struct *ud = (cs_struct *)handle;
 
-	if (reg >= X86_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	if (reg == X86_REG_EFLAGS) {
diff --git a/arch/XCore/XCoreMapping.c b/arch/XCore/XCoreMapping.c
index e2a4c67..2a07e12 100644
--- a/arch/XCore/XCoreMapping.c
+++ b/arch/XCore/XCoreMapping.c
@@ -49,7 +49,7 @@
 const char *XCore_reg_name(csh handle, unsigned int reg)
 {
 #ifndef CAPSTONE_DIET
-	if (reg >= XCORE_REG_ENDING)
+	if (reg >= ARR_SIZE(reg_name_maps))
 		return NULL;
 
 	return reg_name_maps[reg].name;