diff options
author | mav <mav@FreeBSD.org> | 2008-06-01 15:13:32 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2008-06-01 15:13:32 +0000 |
commit | 4d5dd9615437530955ff18d3eb5c4279a040788e (patch) | |
tree | 8a424577451ba3581c6ae0fae938da26af70703a /sys/netgraph/ng_nat.c | |
parent | d9cb06bec04c5dbff21dfb54a16b80a6be2e1b08 (diff) | |
download | FreeBSD-src-4d5dd9615437530955ff18d3eb5c4279a040788e.zip FreeBSD-src-4d5dd9615437530955ff18d3eb5c4279a040788e.tar.gz |
Pass really available buffer size to libalias instead of MCLBYTES constant.
MCLBYTES constant were used with believe that m_megapullup() always moves
date into a fresh cluster that may become not so.
Diffstat (limited to 'sys/netgraph/ng_nat.c')
-rw-r--r-- | sys/netgraph/ng_nat.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netgraph/ng_nat.c b/sys/netgraph/ng_nat.c index 0d1e513..9e605da 100644 --- a/sys/netgraph/ng_nat.c +++ b/sys/netgraph/ng_nat.c @@ -704,14 +704,14 @@ ng_nat_rcvdata(hook_p hook, item_p item ) ("ng_nat: ip_len != m_pkthdr.len")); if (hook == priv->in) { - rval = LibAliasIn(priv->lib, c, MCLBYTES); + rval = LibAliasIn(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); if (rval != PKT_ALIAS_OK && rval != PKT_ALIAS_FOUND_HEADER_FRAGMENT) { NG_FREE_ITEM(item); return (EINVAL); } } else if (hook == priv->out) { - rval = LibAliasOut(priv->lib, c, MCLBYTES); + rval = LibAliasOut(priv->lib, c, m->m_len + M_TRAILINGSPACE(m)); if (rval != PKT_ALIAS_OK) { NG_FREE_ITEM(item); return (EINVAL); |