Skip to content

Commit 8f3e229

Browse files
committed
Fix a couple of use-after-free bugs in APIAnalyzer.
1 parent d1974db commit 8f3e229

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

libpharos/apigraph.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2015-2021 Carnegie Mellon University. See LICENSE file for terms.
1+
// Copyright 2015-2022 Carnegie Mellon University. See LICENSE file for terms.
22

33
// Author: Jeff Gennari
44
// Date: 2015-06-22
@@ -815,7 +815,10 @@ void ApiSearchExecutor::UpdateApiMatchTable(rose_addr_t caller, rose_addr_t call
815815
ApiParamPtrListPtr cur_list = match_pair.second; // list of aliases
816816
assert(cur_list);
817817

818-
for (ApiParameterPtr cur_pd : *cur_list) { // for each recorded alias
818+
auto & clist = *cur_list;
819+
for (std::size_t i = 0; i < clist.size(); ++i) {
820+
// for each recorded alias
821+
ApiParameterPtr cur_pd = clist[i];
819822
if (!cur_pd) {
820823
continue;
821824
}
@@ -2497,7 +2500,7 @@ rose_addr_t ApiCfgComponent::ConsolidateReturns(BlockSet & retns) {
24972500

24982501
KillVertices(kill_list);
24992502

2500-
return exit_info.block->get_address();
2503+
return (*cfg_)[exit_vertex].block->get_address();
25012504
}
25022505

25032506

0 commit comments

Comments
 (0)