mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
In theory, m_dup should not be necessary, as m_copypacket should be
sifficient. But somewhere (I believe in the UDP stuff), someone is overwriting an mbuf without calling m_pullup() first. This results in broad- and multi-cast traffic that is passed through the bridge getting corrupted. This should be backed out when there is some assurance that the upper layers (and I suppose all of the device drivers) are fixed. Suggested by: archie
This commit is contained in:
parent
b5fbbe9599
commit
54d2be5a40
1 changed files with 3 additions and 3 deletions
|
|
@ -802,10 +802,10 @@ forward:
|
|||
if (canfree && once ) { /* no need to copy */
|
||||
m = *m0 ;
|
||||
*m0 = NULL ; /* original is gone */
|
||||
} else /* on a P5-90, m_copypacket takes 540 ticks */
|
||||
m = m_copypacket(*m0, M_DONTWAIT);
|
||||
} else
|
||||
m = m_dup(*m0, M_DONTWAIT); /* XXX m_copypacket should work */
|
||||
if (m == NULL) {
|
||||
printf("bdg_forward: sorry, m_copy failed!\n");
|
||||
printf("bdg_forward: sorry, m_dup failed!\n");
|
||||
return ENOBUFS ; /* the original is still there... */
|
||||
}
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue