Commit 499504b
committed
bgpd: Fix stack overflow when debug printing label information
==11==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f8ec03890b2
WRITE of size 5 at 0x7f8ec03890b2 thread T0
#0 vsnprintf (sanitizer_common_interceptors.inc:1652)
#1 snprintf (sanitizer_common_interceptors.inc:1723)
#2 mpls_labels2str (bgpd/bgp_label.c:699)
#3 bgp_debug_rdpfxpath2str (bgpd/bgp_debug.c:2967)
#4 subgroup_update_packet (bgpd/bgp_updgrp_packet.c:880)
#5 bgp_generate_updgrp_packets (bgpd/bgp_packet.c:504)
[144, 174) 'tag_buf' (line 2918) <== Memory access at offset 178 overflows this variable
[208, 238) 'pathid_buf' (line 2928)
Reported-by: Qifan Zhang, Palo Alto Networks
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>1 parent 18549aa commit 499504b
5 files changed
Lines changed: 17 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2951 | 2951 | | |
2952 | 2952 | | |
2953 | 2953 | | |
2954 | | - | |
| 2954 | + | |
2955 | 2955 | | |
2956 | 2956 | | |
2957 | 2957 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
681 | 681 | | |
682 | 682 | | |
683 | 683 | | |
684 | | - | |
| 684 | + | |
| 685 | + | |
685 | 686 | | |
686 | 687 | | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
687 | 691 | | |
688 | 692 | | |
689 | 693 | | |
690 | 694 | | |
691 | 695 | | |
692 | | - | |
| 696 | + | |
693 | 697 | | |
| 698 | + | |
| 699 | + | |
694 | 700 | | |
695 | 701 | | |
696 | | - | |
697 | | - | |
698 | | - | |
699 | | - | |
| 702 | + | |
700 | 703 | | |
701 | | - | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
702 | 708 | | |
703 | 709 | | |
704 | 710 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12436 | 12436 | | |
12437 | 12437 | | |
12438 | 12438 | | |
12439 | | - | |
| 12439 | + | |
12440 | 12440 | | |
12441 | 12441 | | |
12442 | 12442 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1545 | 1545 | | |
1546 | 1546 | | |
1547 | 1547 | | |
1548 | | - | |
| 1548 | + | |
1549 | 1549 | | |
1550 | 1550 | | |
1551 | 1551 | | |
| |||
0 commit comments