Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: sandbox/linux/seccomp-bpf/verifier.cc

Issue 278583005: Linux Sandbox: Add support for SECCOMP_RET_TRACE. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test change Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <string.h> 5 #include <string.h>
6 6
7 #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h" 7 #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
8 #include "sandbox/linux/seccomp-bpf/sandbox_bpf_policy.h" 8 #include "sandbox/linux/seccomp-bpf/sandbox_bpf_policy.h"
9 #include "sandbox/linux/seccomp-bpf/syscall_iterator.h" 9 #include "sandbox/linux/seccomp-bpf/syscall_iterator.h"
10 #include "sandbox/linux/seccomp-bpf/verifier.h" 10 #include "sandbox/linux/seccomp-bpf/verifier.h"
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 Ld(&state, insn, err); 414 Ld(&state, insn, err);
415 break; 415 break;
416 case BPF_JMP: 416 case BPF_JMP:
417 Jmp(&state, insn, err); 417 Jmp(&state, insn, err);
418 break; 418 break;
419 case BPF_RET: { 419 case BPF_RET: {
420 uint32_t r = Ret(&state, insn, err); 420 uint32_t r = Ret(&state, insn, err);
421 switch (r & SECCOMP_RET_ACTION) { 421 switch (r & SECCOMP_RET_ACTION) {
422 case SECCOMP_RET_TRAP: 422 case SECCOMP_RET_TRAP:
423 case SECCOMP_RET_ERRNO: 423 case SECCOMP_RET_ERRNO:
424 case SECCOMP_RET_TRACE:
424 case SECCOMP_RET_ALLOW: 425 case SECCOMP_RET_ALLOW:
425 break; 426 break;
426 case SECCOMP_RET_KILL: // We don't ever generate this 427 case SECCOMP_RET_KILL: // We don't ever generate this
427 case SECCOMP_RET_TRACE: // We don't ever generate this
428 case SECCOMP_RET_INVALID: // Should never show up in BPF program 428 case SECCOMP_RET_INVALID: // Should never show up in BPF program
429 default: 429 default:
430 *err = "Unexpected return code found in BPF program"; 430 *err = "Unexpected return code found in BPF program";
431 return 0; 431 return 0;
432 } 432 }
433 return r; 433 return r;
434 } 434 }
435 case BPF_ALU: 435 case BPF_ALU:
436 Alu(&state, insn, err); 436 Alu(&state, insn, err);
437 break; 437 break;
438 default: 438 default:
439 *err = "Unexpected instruction in BPF program"; 439 *err = "Unexpected instruction in BPF program";
440 break; 440 break;
441 } 441 }
442 } 442 }
443 return 0; 443 return 0;
444 } 444 }
445 445
446 } // namespace sandbox 446 } // namespace sandbox
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698