From: Dmitry V. Levin Date: Sun, 27 Dec 2015 00:18:35 +0000 (+0000) Subject: Handle unlikely errors from personality syscall X-Git-Tag: v4.12~786 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0297e0c06788576fd1b86a0d533d6d7157ec7a03;p=strace Handle unlikely errors from personality syscall Despite being marked as SYSCALL_NEVER_FAILS, personality syscall still might report a failure on some architectures due to obscure kernel bugs. Check for this unlikely case and let users know that their kernel has gone bananas. * personality.c (SYS_FUNC(personality)): Do not parse syscall return value in case of syserror. --- diff --git a/personality.c b/personality.c index 02dc80f2..44ed5e3b 100644 --- a/personality.c +++ b/personality.c @@ -50,6 +50,9 @@ SYS_FUNC(personality) return 0; } + if (syserror(tcp)) + return 0; + pers = tcp->u_rval; const char *type = xlookup(personality_types, pers & PER_MASK); char *p;