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_;