]> git.ipfire.org Git - thirdparty/suricata.git/commit
rohash: fix potential bad shift 952/head
authorVictor Julien <victor@inliniac.net>
Wed, 23 Apr 2014 09:00:02 +0000 (11:00 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 23 Apr 2014 09:59:39 +0000 (11:59 +0200)
commit9abf5951220ac5e4e91555a9f384f16a8c2f272e
treee64846212b2b695107f0fce963f7d915d7e4abad
parent1992a22769e214f22d4af379b452c3e58c8fcebc
rohash: fix potential bad shift

Fix issue detected byCoverity:

*** CID 1197756:  Bad bit shift operation  (BAD_SHIFT)
/src/util-rohash.c: 74 in ROHashInit()
68         }
69         if (hash_bits < 4 || hash_bits > 32) {
70             SCLogError(SC_ERR_HASH_TABLE_INIT, "invalid hash_bits setting, valid range is 4-32");
71             return NULL;
72         }
73
>>>     CID 1197756:  Bad bit shift operation  (BAD_SHIFT)
>>>     In expression "1U << hash_bits", left shifting by more than 31 bits has undefined behavior.  The shift amount, "hash_bits", is as much as 32.
74         uint32_t size = hashsize(hash_bits) * sizeof(ROHashTableOffsets);
75
76         ROHashTable *table = SCMalloc(sizeof(ROHashTable) + size);
77         if (unlikely(table == NULL)) {
78             SCLogError(SC_ERR_HASH_TABLE_INIT, "failed to alloc memory");
79             return NULL;

This was only a potential issue as ROHashInit was only called with
hash_bits 16 in the code.

Bug #1170.
src/util-rohash.c