OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/accessibility/ax_tree.h" | 5 #include "ui/accessibility/ax_tree.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 fake_delegate.subtree_reparented_finished_ids(); | 425 fake_delegate.subtree_reparented_finished_ids(); |
426 std::vector<int> node_reparented = | 426 std::vector<int> node_reparented = |
427 fake_delegate.node_reparented_finished_ids(); | 427 fake_delegate.node_reparented_finished_ids(); |
428 ASSERT_EQ(std::find(created.begin(), created.end(), 3), created.end()); | 428 ASSERT_EQ(std::find(created.begin(), created.end(), 3), created.end()); |
429 ASSERT_NE(std::find(subtree_reparented.begin(), subtree_reparented.end(), 3), | 429 ASSERT_NE(std::find(subtree_reparented.begin(), subtree_reparented.end(), 3), |
430 subtree_reparented.end()); | 430 subtree_reparented.end()); |
431 ASSERT_EQ(std::find(node_reparented.begin(), node_reparented.end(), 3), | 431 ASSERT_EQ(std::find(node_reparented.begin(), node_reparented.end(), 3), |
432 node_reparented.end()); | 432 node_reparented.end()); |
433 } | 433 } |
434 | 434 |
| 435 // UAF caught by ax_tree_fuzzer |
| 436 TEST(AXTreeTest, BogusAXTree) { |
| 437 AXTreeUpdate initial_state; |
| 438 AXNodeData node; |
| 439 node.id = 0; |
| 440 node.state = 0; |
| 441 initial_state.nodes.push_back(node); |
| 442 initial_state.nodes.push_back(node); |
| 443 ui::AXTree tree; |
| 444 tree.Unserialize(initial_state); |
| 445 } |
| 446 |
| 447 // UAF caught by ax_tree_fuzzer |
| 448 TEST(AXTreeTest, BogusAXTree2) { |
| 449 AXTreeUpdate initial_state; |
| 450 AXNodeData node; |
| 451 node.id = 0; |
| 452 node.state = 0; |
| 453 initial_state.nodes.push_back(node); |
| 454 AXNodeData node2; |
| 455 node2.id = 0; |
| 456 node2.state = 0; |
| 457 node2.child_ids.push_back(0); |
| 458 node2.child_ids.push_back(0); |
| 459 initial_state.nodes.push_back(node2); |
| 460 ui::AXTree tree; |
| 461 tree.Unserialize(initial_state); |
| 462 } |
| 463 |
435 } // namespace ui | 464 } // namespace ui |
OLD | NEW |