diff options
| author | Christian Hopps <chopps@labn.net> | 2023-02-24 02:52:49 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-24 02:52:49 -0500 |
| commit | b1867d42927c6e28a257dbcc52e8e1ad27d415e9 (patch) | |
| tree | 1d003cf563acbc8b674988983c48492c73a60b9e | |
| parent | 3ef4868715d31bdc8c7149e1f40864d4e89bd7de (diff) | |
| parent | 0b999c886e241c52bd1f7ef0066700e4b618ebb3 (diff) | |
Merge pull request #12884 from donaldsharp/flowspec_overflow
bgpd: Flowspec overflow issue
| -rw-r--r-- | bgpd/bgp_flowspec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bgpd/bgp_flowspec.c b/bgpd/bgp_flowspec.c index 8d5ca5e777..f9debe43cd 100644 --- a/bgpd/bgp_flowspec.c +++ b/bgpd/bgp_flowspec.c @@ -127,6 +127,13 @@ int bgp_nlri_parse_flowspec(struct peer *peer, struct attr *attr, psize); return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW; } + + if (psize == 0) { + flog_err(EC_BGP_FLOWSPEC_PACKET, + "Flowspec NLRI length 0 which makes no sense"); + return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW; + } + if (bgp_fs_nlri_validate(pnt, psize, afi) < 0) { flog_err( EC_BGP_FLOWSPEC_PACKET, |
