]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 7 Aug 2003 11:12:39 +0000 (11:12 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 7 Aug 2003 11:12:39 +0000 (11:12 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2250 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/instr.c
src/ca65/instr.h

index dd1729ec3578a9fef482f60dab0af8cf0b63732d..7d80bd74c8590dd15f3a6d8375809d2f12ee74b9 100644 (file)
@@ -887,7 +887,14 @@ int FindInstruction (const char* Ident)
 
     /* Make a copy, and uppercase that copy */
     I = 0;
-    while (Ident[I]) {
+    while (Ident[I] != '\0') {
+        /* If the identifier is longer than the longest mnemonic, it cannot
+         * be one.
+         */
+        if (I >= sizeof (Key) - 1) {
+            /* Not found, no need for further action */
+            return -1;
+        }
         Key[I] = toupper ((unsigned char)Ident[I]);
         ++I;
     }
index 20f957203ae6b7d2a465b8b7358c4efd95ca4b69..7429e447cdbfd426cf049e2d454a049b47bda349 100644 (file)
@@ -97,7 +97,7 @@
 /* Description for one instruction */
 typedef struct InsDesc InsDesc;
 struct InsDesc {
-    char                       Mnemonic [8];
+    char                       Mnemonic[5];
     unsigned long              AddrMode;               /* Valid adressing modes */
     unsigned char      BaseCode;               /* Base opcode */
     unsigned char      ExtCode;                /* Number of ext code table */