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

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

Issue 1128733002: Update from https://crrev.com/328418 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // Note: any code in this file MUST be async-signal safe. 5 // Note: any code in this file MUST be async-signal safe.
6 6
7 #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" 7 #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
8 8
9 #include <sys/syscall.h> 9 #include <sys/syscall.h>
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 *addr = '\0'; 181 *addr = '\0';
182 for (;;) 182 for (;;)
183 _exit(1); 183 _exit(1);
184 } 184 }
185 185
186 intptr_t SIGSYSKillFailure(const struct arch_seccomp_data& args, 186 intptr_t SIGSYSKillFailure(const struct arch_seccomp_data& args,
187 void* /* aux */) { 187 void* /* aux */) {
188 static const char kSeccompKillError[] = 188 static const char kSeccompKillError[] =
189 __FILE__":**CRASHING**:" SECCOMP_MESSAGE_KILL_CONTENT "\n"; 189 __FILE__":**CRASHING**:" SECCOMP_MESSAGE_KILL_CONTENT "\n";
190 WriteToStdErr(kSeccompKillError, sizeof(kSeccompKillError) - 1); 190 WriteToStdErr(kSeccompKillError, sizeof(kSeccompKillError) - 1);
191 // Make "request" volatile so that we can see it on the stack in a minidump. 191 // Make "pid" volatile so that we can see it on the stack in a minidump.
192 volatile uint64_t pid = args.args[0]; 192 volatile uint64_t my_pid = sys_getpid();
193 volatile char* addr = reinterpret_cast<volatile char*>(pid & 0xFFF); 193 volatile char* addr = reinterpret_cast<volatile char*>(my_pid & 0xFFF);
194 *addr = '\0';
195 // Hit the NULL page if this fails.
196 addr = reinterpret_cast<volatile char*>(pid & 0xFFF);
197 *addr = '\0'; 194 *addr = '\0';
198 for (;;) 195 for (;;)
199 _exit(1); 196 _exit(1);
200 } 197 }
201 198
202 intptr_t SIGSYSFutexFailure(const struct arch_seccomp_data& args, 199 intptr_t SIGSYSFutexFailure(const struct arch_seccomp_data& args,
203 void* /* aux */) { 200 void* /* aux */) {
204 static const char kSeccompFutexError[] = 201 static const char kSeccompFutexError[] =
205 __FILE__ ":**CRASHING**:" SECCOMP_MESSAGE_FUTEX_CONTENT "\n"; 202 __FILE__ ":**CRASHING**:" SECCOMP_MESSAGE_FUTEX_CONTENT "\n";
206 WriteToStdErr(kSeccompFutexError, sizeof(kSeccompFutexError) - 1); 203 WriteToStdErr(kSeccompFutexError, sizeof(kSeccompFutexError) - 1);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 288
292 const char* GetKillErrorMessageContentForTests() { 289 const char* GetKillErrorMessageContentForTests() {
293 return SECCOMP_MESSAGE_KILL_CONTENT; 290 return SECCOMP_MESSAGE_KILL_CONTENT;
294 } 291 }
295 292
296 const char* GetFutexErrorMessageContentForTests() { 293 const char* GetFutexErrorMessageContentForTests() {
297 return SECCOMP_MESSAGE_FUTEX_CONTENT; 294 return SECCOMP_MESSAGE_FUTEX_CONTENT;
298 } 295 }
299 296
300 } // namespace sandbox. 297 } // namespace sandbox.
OLDNEW
« no previous file with comments | « sandbox/linux/bpf_dsl/seccomp_macros.h ('k') | sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698