The logical error may have been made here. Comparison with the upper
bound of the variable type does not make sense. It may be worth adding
the cast of one of the multiplication operands to the 64-bit type for
avoiding overflow.
Found by Security Code with Svace static analyzer
Bug: #5789
Signed-off-by: Maxim Korotkov <m.korotkov@securitycode.ru>
OutputTxLogger *t = list[alproto];
while (t->next)
t = t->next;
- if (t->id * 2 > UINT32_MAX) {
+ if (t->id * 2ULL > UINT32_MAX) {
FatalError("Too many loggers registered.");
}
op->id = t->id * 2;