add overflow check on '*' operator