]> git.puffer.fish Git - matthieu/frr.git/commit
zebra: zebra crash for zapi stream
authorSoumya Roy <souroy@nvidia.com>
Fri, 14 Mar 2025 21:56:48 +0000 (21:56 +0000)
committerSoumya Roy <souroy@nvidia.com>
Thu, 20 Mar 2025 16:13:44 +0000 (16:13 +0000)
commit6fe9092eb312e196260ee8deefb73b3f864b1432
tree71f2f3a1cb2bef0dd9cb6909513626387fbe8234
parent4de0f16a89da069e8fa9920ac888ff8aed4cc6e8
zebra: zebra crash for zapi stream

Issue:
If static route is created with a BGP route as nexthop, which
recursively resolves over 512 ECMP v6 nexthops, zapi nexthop encode
fails, as there is not enough memory allocated for stream. This causes
assert/core dump in zebra. Right now we allocate fixed memory
of ZEBRA_MAX_PACKET_SIZ size.

Fix:
1)Dynamically calculate required memory size for the stream
2)try to optimize memory usage

Testing:
No crash happens anymore with the fix
zebra: zebra crash for zapi stream

Issue:
If static route is created with a BGP route as nexthop, which
recursively resolves over 512 ECMP v6 nexthops, zapi nexthop encode
fails, as there is not enough memory allocated for stream. This causes
assert/core dump in zebra. Right now we allocate fixed memory
of ZEBRA_MAX_PACKET_SIZ size.

Fix:
1)Dynamically calculate required memory size for the stream
2)try to optimize memory usage

Testing:
No crash happens anymore with the fix
r1#
r1# sharp install routes 2100:cafe:: nexthop 2001:db8::1 1000
r1#

r2# conf
r2(config)# ipv6 route 2503:feca::100/128 2100:cafe::1
r2(config)# exit
r2#

Signed-off-by: Soumya Roy <souroy@nvidia.com>
zebra/zebra_rnh.c