Fix incorrect dereferencing of char* to array's index.
authorTeodor Sigaev <teodor@sigaev.ru>
Thu, 29 Jan 2009 16:22:10 +0000 (16:22 +0000)
committerTeodor Sigaev <teodor@sigaev.ru>
Thu, 29 Jan 2009 16:22:10 +0000 (16:22 +0000)
Per Tommy Gildseth <tommy.gildseth@usit.uio.no> report

src/backend/tsearch/spell.c

index ee908496f3c65763b87f58875f1f55e11c26ee5b..71a77a1dcc2ec267f4cc0d95b04c4b8c9e3b16c3 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.14 2009/01/01 17:23:48 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.15 2009/01/29 16:22:10 teodor Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -521,7 +521,7 @@ addFlagValue(IspellDict *Conf, char *s, uint32 val)
                (errcode(ERRCODE_CONFIG_FILE_ERROR),
                 errmsg("multibyte flag character is not allowed")));
 
-   Conf->flagval[(unsigned int) *s] = (unsigned char) val;
+   Conf->flagval[*(unsigned char*) s] = (unsigned char) val;
    Conf->usecompound = true;
 }
 
@@ -654,7 +654,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename)
                ptr = repl + (ptr - prepl) + 1;
                while (*ptr)
                {
-                   aflg |= Conf->flagval[(unsigned int) *ptr];
+                   aflg |= Conf->flagval[*(unsigned char*) ptr];
                    ptr++;
                }
            }
@@ -735,7 +735,7 @@ NIImportAffixes(IspellDict *Conf, const char *filename)
 
                if (*s && pg_mblen(s) == 1)
                {
-                   Conf->flagval[(unsigned int) *s] = FF_COMPOUNDFLAG;
+                   Conf->flagval[*(unsigned char*) s] = FF_COMPOUNDFLAG;
                    Conf->usecompound = true;
                }
                oldformat = true;
@@ -791,7 +791,7 @@ NIImportAffixes(IspellDict *Conf, const char *filename)
                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
                         errmsg("multibyte flag character is not allowed")));
 
-           flag = (unsigned char) *s;
+           flag = *(unsigned char*) s;
            goto nextline;
        }
        if (STRNCMP(recoded, "COMPOUNDFLAG") == 0 || STRNCMP(recoded, "COMPOUNDMIN") == 0 ||
@@ -851,7 +851,7 @@ makeCompoundFlags(IspellDict *Conf, int affix)
 
    while (str && *str)
    {
-       flag |= Conf->flagval[(unsigned int) *str];
+       flag |= Conf->flagval[*(unsigned char*) str];
        str++;
    }