From b36afb79daad6102e5c21cd9ea028e4e45bf1005 Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Thu, 29 May 2014 01:53:40 +0100
Subject: [PATCH] [Fix] More paranoid checks for possible segfaults.

---
 src/input.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/input.c b/src/input.c
index 05112c9..2272905 100644
--- a/src/input.c
+++ b/src/input.c
@@ -274,13 +274,25 @@ SDLKey input_keyConv(char* name) {
   /* Compare for single character. */
   if(l == 1) {
     m = MIN(256, INPUT_NUMKEYS);
-    for(k = 0; k < m; k++) /* Only valid for char range. */
+    for(k = 0; k < m; k++) { /* Only valid for char range. */
+      /* Must not be NULL. */
+      if(keyconv[k] == NULL)
+        continue;
+
+      /* Check if it's also a single char. */
       if((buf == tolower(keyconv[k][0])) && (keyconv[k][1] == '\0'))
         return k;
+    }
   } else { /* Compare for strings. */
-    for(k = 0; k < INPUT_NUMKEYS; k++)
+    for(k = 0; k < INPUT_NUMKEYS; k++) {
+      /* Must not be NULL. */
+      if(keyconv[k] == NULL)
+        continue;
+
+      /* Compare strings. */
       if(strcmp(name, keyconv[k])==0)
         return k;
+    }
   }
 
   WARN("Keyname '%s' doesn't match any key.", name);