OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "sandbox/linux/seccomp-bpf/codegen.h" | 8 #include "sandbox/linux/seccomp-bpf/codegen.h" |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 (int)iter->k, | 99 (int)iter->k, |
100 ip + iter->jt + 1, ip + iter->jf + 1); | 100 ip + iter->jt + 1, ip + iter->jf + 1); |
101 } | 101 } |
102 break; | 102 break; |
103 case BPF_RET: | 103 case BPF_RET: |
104 fprintf(stderr, "RET 0x%x // ", iter->k); | 104 fprintf(stderr, "RET 0x%x // ", iter->k); |
105 if ((iter->k & SECCOMP_RET_ACTION) == SECCOMP_RET_TRAP) { | 105 if ((iter->k & SECCOMP_RET_ACTION) == SECCOMP_RET_TRAP) { |
106 fprintf(stderr, "Trap #%d\n", iter->k & SECCOMP_RET_DATA); | 106 fprintf(stderr, "Trap #%d\n", iter->k & SECCOMP_RET_DATA); |
107 } else if ((iter->k & SECCOMP_RET_ACTION) == SECCOMP_RET_ERRNO) { | 107 } else if ((iter->k & SECCOMP_RET_ACTION) == SECCOMP_RET_ERRNO) { |
108 fprintf(stderr, "errno = %d\n", iter->k & SECCOMP_RET_DATA); | 108 fprintf(stderr, "errno = %d\n", iter->k & SECCOMP_RET_DATA); |
| 109 } else if ((iter->k & SECCOMP_RET_ACTION) == SECCOMP_RET_TRACE) { |
| 110 fprintf(stderr, "Trace #%d\n", iter->k & SECCOMP_RET_DATA); |
109 } else if (iter->k == SECCOMP_RET_ALLOW) { | 111 } else if (iter->k == SECCOMP_RET_ALLOW) { |
110 fprintf(stderr, "Allowed\n"); | 112 fprintf(stderr, "Allowed\n"); |
111 } else { | 113 } else { |
112 fprintf(stderr, "???\n"); | 114 fprintf(stderr, "???\n"); |
113 } | 115 } |
114 break; | 116 break; |
115 case BPF_ALU: | 117 case BPF_ALU: |
116 fprintf(stderr, BPF_OP(iter->code) == BPF_NEG | 118 fprintf(stderr, BPF_OP(iter->code) == BPF_NEG |
117 ? "A := -A\n" : "A := A %s 0x%x\n", | 119 ? "A := -A\n" : "A := A %s 0x%x\n", |
118 BPF_OP(iter->code) == BPF_ADD ? "+" : | 120 BPF_OP(iter->code) == BPF_ADD ? "+" : |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 CutGraphIntoBasicBlocks(instructions, branch_targets, &all_blocks); | 761 CutGraphIntoBasicBlocks(instructions, branch_targets, &all_blocks); |
760 MergeTails(&all_blocks); | 762 MergeTails(&all_blocks); |
761 BasicBlocks basic_blocks; | 763 BasicBlocks basic_blocks; |
762 TopoSortBasicBlocks(first_block, all_blocks, &basic_blocks); | 764 TopoSortBasicBlocks(first_block, all_blocks, &basic_blocks); |
763 ComputeRelativeJumps(&basic_blocks, all_blocks); | 765 ComputeRelativeJumps(&basic_blocks, all_blocks); |
764 ConcatenateBasicBlocks(basic_blocks, program); | 766 ConcatenateBasicBlocks(basic_blocks, program); |
765 return; | 767 return; |
766 } | 768 } |
767 | 769 |
768 } // namespace sandbox | 770 } // namespace sandbox |
OLD | NEW |