diff options
author | marcus <marcus@FreeBSD.org> | 2006-11-07 21:06:48 +0000 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2006-11-07 21:06:48 +0000 |
commit | 42daf70603bcceaff0cae18dedc0c21dd8f1aa55 (patch) | |
tree | b632a721a07892789fa2782665fad60f8b4ea940 /sys/netinet/libalias/alias_smedia.c | |
parent | 25a000d49f5cae561b322d4e4bf6da5f28040410 (diff) | |
download | FreeBSD-src-42daf70603bcceaff0cae18dedc0c21dd8f1aa55.zip FreeBSD-src-42daf70603bcceaff0cae18dedc0c21dd8f1aa55.tar.gz |
Fix TFTP NAT support by making sure the appropriate fingerprinting checks
are done.
Reviewed by: piso
Diffstat (limited to 'sys/netinet/libalias/alias_smedia.c')
-rw-r--r-- | sys/netinet/libalias/alias_smedia.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/netinet/libalias/alias_smedia.c b/sys/netinet/libalias/alias_smedia.c index 58f844b..cf372b0 100644 --- a/sys/netinet/libalias/alias_smedia.c +++ b/sys/netinet/libalias/alias_smedia.c @@ -135,14 +135,16 @@ static int fingerprint(struct libalias *la, struct ip *pip, struct alias_data *ah) { + if (ah->dport != NULL && ah->aport != NULL && ah->sport != NULL && + ntohs(*ah->dport) == TFTP_PORT_NUMBER) + return (0); if (ah->dport == NULL || ah->sport == NULL || ah->lnk == NULL || ah->maxpktsize == 0) return (-1); if (ntohs(*ah->dport) == RTSP_CONTROL_PORT_NUMBER_1 || ntohs(*ah->sport) == RTSP_CONTROL_PORT_NUMBER_1 || ntohs(*ah->dport) == RTSP_CONTROL_PORT_NUMBER_2 - || ntohs(*ah->sport) == RTSP_CONTROL_PORT_NUMBER_2 - || ntohs(*ah->dport) == TFTP_PORT_NUMBER) + || ntohs(*ah->sport) == RTSP_CONTROL_PORT_NUMBER_2) return (0); return (-1); } |