Comment # 11
on bug 9962
from David Ameiss
The issue is actually that a TCP SID header should never appear in a
non-transport stream (LBM_CHANNEL_UNKNOWN_STREAM_TCP). So the fuzzing made it
look that way... which is what the fuzzing is supposed to do.
I need to re-evaluate the lbm_is_channel_known() and related functions - it was
correct at the time I wrote it, but perhaps not sufficient.
At least for the short term, I've worked around it by declaring a
tcp_addr_valid gboolean, then:
/* If transport is TCP and we got a TCP SID header, process it. */
tcp_addr_valid = TRUE;
if (lbm_channel_is_unknown_transport_source_lbttcp(channel))
{
COPY_ADDRESS_SHALLOW(&tcp_addr, &(pinfo->src));
tcp_port = (guint16)pinfo->srcport;
}
else if (lbm_channel_is_unknown_transport_client_lbttcp(channel))
{
COPY_ADDRESS_SHALLOW(&tcp_addr, &(pinfo->dst));
tcp_port = (guint16)pinfo->destport;
}
else
{
tcp_addr_valid = FALSE;
}
if ((pinfo->fd->flags.visited == 0) && (tcp_sid_info.set) &&
!lbm_channel_is_known(channel) && tcp_addr_valid)
{
lbttcp_transport_sid_add(&tcp_addr, tcp_port, pinfo->fd->num,
tcp_sid_info.session_id);
}
You are receiving this mail because:
- You are watching all bug changes.