]> granicus.if.org Git - onig/commitdiff
fix #154: UBSan warning in callout_name_table_hash
authorK.Kosako <kkosako0@gmail.com>
Wed, 18 Sep 2019 11:13:28 +0000 (20:13 +0900)
committerK.Kosako <kkosako0@gmail.com>
Wed, 18 Sep 2019 11:13:28 +0000 (20:13 +0900)
src/regparse.c

index 6bef9a1886fb1b866cd547a3891f35d4daa15fce..db1bdff0c67aa6040d14e3bb99557a449688bf04 100644 (file)
@@ -557,15 +557,15 @@ static int
 callout_name_table_hash(st_callout_name_key* x)
 {
   UChar *p;
-  int val = 0;
+  unsigned int val = 0;
 
   p = x->s;
   while (p < x->end) {
-    val = val * 997 + (int )*p++;
+    val = val * 997 + (unsigned int )*p++;
   }
 
   /* use intptr_t for escape warning in Windows */
-  return val + (val >> 5) + ((intptr_t )x->enc & 0xffff) + x->type;
+  return (int )(val + (val >> 5) + ((intptr_t )x->enc & 0xffff) + x->type);
 }
 
 extern hash_table_type*