mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 15:30:02 +00:00
bgpd: fix coverity issue on aspath_filter_exclude_acl
CID 1566378 (#1-4 of 4): Use after free (USE_AFTER_FREE)76.
use_after_free: Using freed pointer cur_seg.
now the prev_seg pointer is set with always existaing values.
Link: https://scan7.scan.coverity.com/reports.htm#v39104/p13747/fileInstanceId=146858993&defectInstanceId=18968273&mergedDefectId=1566378&fileStart=1376&fileEnd=1625
Fixes: 4685db418e
(bgpd: add set as-path exclude acl-list command)
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
This commit is contained in:
parent
0c9aabe760
commit
c0b1105e78
@ -1703,7 +1703,7 @@ struct aspath *aspath_filter_exclude_acl(struct aspath *source,
|
||||
if (cur_seg == source->segments)
|
||||
/* first segment */
|
||||
source->segments = cur_seg->next;
|
||||
else
|
||||
else if (prev_seg)
|
||||
prev_seg->next = cur_seg->next;
|
||||
assegment_free(cur_seg);
|
||||
}
|
||||
@ -1725,8 +1725,9 @@ struct aspath *aspath_filter_exclude_acl(struct aspath *source,
|
||||
else if (prev_seg)
|
||||
prev_seg->next = new_seg;
|
||||
assegment_free(cur_seg);
|
||||
}
|
||||
prev_seg = cur_seg;
|
||||
prev_seg = new_seg;
|
||||
} else
|
||||
prev_seg = cur_seg;
|
||||
cur_seg = next_seg;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user