summarylogtreecommitdiffstats
path: root/ucontext.patch
blob: ab8673bbfbab1a03c938dab9d39da90a32035c9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
diff --git a/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.cc b/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.cc
index edb2ab05..1f48d6d9 100644
--- a/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.cc
+++ b/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.cc
@@ -397,12 +397,12 @@ bool ExceptionHandler::HandleSignal(int, siginfo_t* info, void* uc) {
   }
   CrashContext context;
   memcpy(&context.siginfo, info, sizeof(siginfo_t));
-  memcpy(&context.context, uc, sizeof(struct ucontext));
+  memcpy(&context.context, uc, sizeof(struct ucontext_t));
 #if !defined(__ARM_EABI__) && !defined(__mips__)
   // FP state is not part of user ABI on ARM Linux.
   // In case of MIPS Linux FP state is already part of struct ucontext
   // and 'float_state' is not a member of CrashContext.
-  struct ucontext *uc_ptr = (struct ucontext*)uc;
+  struct ucontext_t *uc_ptr = (struct ucontext_t*)uc;
   if (uc_ptr->uc_mcontext.fpregs) {
     memcpy(&context.float_state,
            uc_ptr->uc_mcontext.fpregs,
@@ -421,12 +421,12 @@ bool ExceptionHandler::HandleSignal(int, siginfo_t* info, void* uc) {
 // This is a public interface to HandleSignal that allows the client to
 // generate a crash dump. This function may run in a compromised context.
 bool ExceptionHandler::SimulateSignalDelivery(int sig) {
-  siginfo_t siginfo = {0, 0, 0, {0}};
+  siginfo_t siginfo = {0, 0, 0, 0, 0};
   // Mimic a trusted signal to allow tracing the process (see
   // ExceptionHandler::HandleSignal().
   siginfo.si_code = SI_USER;
   siginfo.si_pid = getpid();
-  struct ucontext context;
+  struct ucontext_t context;
   getcontext(&context);
   return HandleSignal(sig, &siginfo, &context);
 }
diff --git a/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.h b/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.h
index bbd962cb..8012a83f 100644
--- a/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.h
+++ b/src/MEGASync/google_breakpad/client/linux/handler/exception_handler.h
@@ -189,7 +189,7 @@ class ExceptionHandler {
   struct CrashContext {
     siginfo_t siginfo;
     pid_t tid;  // the crashing thread.
-    struct ucontext context;
+    struct ucontext_t context;
 #if !defined(__ARM_EABI__) && !defined(__mips__)
     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
     // In case of MIPS Linux FP state is already part of struct ucontext
diff --git a/src/MEGASync/google_breakpad/client/linux/minidump_writer/minidump_writer.cc b/src/MEGASync/google_breakpad/client/linux/minidump_writer/minidump_writer.cc
index ee759274..100dbf69 100644
--- a/src/MEGASync/google_breakpad/client/linux/minidump_writer/minidump_writer.cc
+++ b/src/MEGASync/google_breakpad/client/linux/minidump_writer/minidump_writer.cc
@@ -177,7 +177,7 @@ void CPUFillFromThreadInfo(MDRawContextX86 *out,
 // Juggle an x86 ucontext into minidump format
 //   out: the minidump structure
 //   info: the collection of register structures.
-void CPUFillFromUContext(MDRawContextX86 *out, const ucontext *uc,
+void CPUFillFromUContext(MDRawContextX86 *out, const ucontext_t *uc,
                          const struct _libc_fpstate* fp) {
   const greg_t* regs = uc->uc_mcontext.gregs;
 
@@ -277,7 +277,7 @@ void CPUFillFromThreadInfo(MDRawContextAMD64 *out,
   my_memcpy(&out->flt_save.xmm_registers, &info.fpregs.xmm_space, 16 * 16);
 }
 
-void CPUFillFromUContext(MDRawContextAMD64 *out, const ucontext *uc,
+void CPUFillFromUContext(MDRawContextAMD64 *out, const ucontext_t *uc,
                          const struct _libc_fpstate* fpregs) {
   const greg_t* regs = uc->uc_mcontext.gregs;
 
@@ -344,7 +344,7 @@ void CPUFillFromThreadInfo(MDRawContextARM* out,
 #endif
 }
 
-void CPUFillFromUContext(MDRawContextARM* out, const ucontext* uc,
+void CPUFillFromUContext(MDRawContextARM* out, const ucontext_t* uc,
                          const struct _libc_fpstate* fpregs) {
   out->context_flags = MD_CONTEXT_ARM_FULL;
 
@@ -405,7 +405,7 @@ static void CPUFillFromThreadInfo(MDRawContextMIPS* out,
   out->float_save.fir = info.fpregs.fir;
 }
 
-static void CPUFillFromUContext(MDRawContextMIPS* out, const ucontext* uc,
+static void CPUFillFromUContext(MDRawContextMIPS* out, const ucontext_t* uc,
                                 const struct _libc_fpstate* fpregs) {
   out->context_flags = MD_CONTEXT_MIPS_FULL;
 
@@ -1725,7 +1725,7 @@ class MinidumpWriter {
   const int fd_;  // File descriptor where the minidum should be written.
   const char* path_;  // Path to the file where the minidum should be written.
 
-  const struct ucontext* const ucontext_;  // also from the signal handler
+  const struct ucontext_t* const ucontext_;  // also from the signal handler
   const struct _libc_fpstate* const float_state_;  // ditto
   LinuxDumper* dumper_;
   MinidumpFileWriter minidump_writer_;