diff options
author | Ryan Steinmetz <zi@FreeBSD.org> | 2012-06-11 11:07:47 +0000 |
---|---|---|
committer | Ryan Steinmetz <zi@FreeBSD.org> | 2012-06-11 11:07:47 +0000 |
commit | c63bb995b31388b3931f3248c694adf94e45ad4f (patch) | |
tree | 3fe2873eab39a4746af200687a29fa3f378f8c99 /net/quagga/files/patch-bgpd__bgp_open.c | |
parent | Register CONFLICTS (diff) |
- Update to 0.99.21
- Security fix for CVE-2012-1820 (obtained from redhat's bugzilla instance/Quagga-RE git repo)
- Convert to OptionsNG
- Fix style issues
PR: ports/168920
Submitted by: me
Approved by: Boris Kovalenko <boris@tagnet.ru> (maintainer)
Security: 1e14d46f-af1f-11e1-b242-00215af774f0
Notes
Notes:
svn path=/head/; revision=299035
Diffstat (limited to 'net/quagga/files/patch-bgpd__bgp_open.c')
-rw-r--r-- | net/quagga/files/patch-bgpd__bgp_open.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/net/quagga/files/patch-bgpd__bgp_open.c b/net/quagga/files/patch-bgpd__bgp_open.c new file mode 100644 index 000000000000..c1abbcb71db7 --- /dev/null +++ b/net/quagga/files/patch-bgpd__bgp_open.c @@ -0,0 +1,49 @@ +--- ./bgpd/bgp_open.c.orig 2012-05-01 12:10:27.000000000 -0400 ++++ ./bgpd/bgp_open.c 2012-06-10 09:05:40.000000000 -0400 +@@ -232,7 +232,7 @@ + } + + /* validate number field */ +- if (sizeof (struct capability_orf_entry) + (entry.num * 2) > hdr->length) ++ if (sizeof (struct capability_orf_entry) + (entry.num * 2) != hdr->length) + { + zlog_info ("%s ORF Capability entry length error," + " Cap length %u, num %u", +@@ -336,28 +336,6 @@ + } + + static int +-bgp_capability_orf (struct peer *peer, struct capability_header *hdr) +-{ +- struct stream *s = BGP_INPUT (peer); +- size_t end = stream_get_getp (s) + hdr->length; +- +- assert (stream_get_getp(s) + sizeof(struct capability_orf_entry) <= end); +- +- /* We must have at least one ORF entry, as the caller has already done +- * minimum length validation for the capability code - for ORF there must +- * at least one ORF entry (header and unknown number of pairs of bytes). +- */ +- do +- { +- if (bgp_capability_orf_entry (peer, hdr) == -1) +- return -1; +- } +- while (stream_get_getp(s) + sizeof(struct capability_orf_entry) < end); +- +- return 0; +-} +- +-static int + bgp_capability_restart (struct peer *peer, struct capability_header *caphdr) + { + struct stream *s = BGP_INPUT (peer); +@@ -575,7 +553,7 @@ + break; + case CAPABILITY_CODE_ORF: + case CAPABILITY_CODE_ORF_OLD: +- if (bgp_capability_orf (peer, &caphdr)) ++ if (bgp_capability_orf_entry (peer, &caphdr)) + return -1; + break; + case CAPABILITY_CODE_RESTART: |