lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20081204.090345.138944783.davem@davemloft.net>
Date:	Thu, 04 Dec 2008 09:03:45 -0800 (PST)
From:	David Miller <davem@...emloft.net>
To:	mingo@...e.hu
Cc:	paulus@...ba.org, akpm@...ux-foundation.org,
	linux-kernel@...r.kernel.org, Joakim.Tjernlund@...nsmode.se
Subject: Re: [PATCH] Allow times and time system calls to return small
 negative values

From: Ingo Molnar <mingo@...e.hu>
Date: Thu, 4 Dec 2008 16:40:44 +0100

> * Paul Mackerras <paulus@...ba.org> wrote:
> 
> > Ingo Molnar writes:
> > 
> > > > +	force_successful_syscall_return();
> > > >  	return compat_jiffies_to_clock_t(jiffies);
> > > 
> > > just curious: what code does force_successful_syscall_return() actually 
> > > run in the powerpc case - those bits are missing from this patch. I 
> > > suspect it sets some sort of flag?
> > 
> > It sets the TIF_NOERROR thread flag, which is tested in the syscall 
> > exit path along with various other thread flags.
> > 
> > force_successful_syscall_return() is defined for powerpc in 
> > arch/powerpc/include/asm/ptrace.h.  It's nothing new, it has existed 
> > for ages and is used in a few other places already.  It has existing 
> > non-null definitions on alpha, ia64, powerpc, and sparc64.
> 
> ok, was just curious. To make this code nicer, we could keep the time 
> syscalls from returning small negative numbers.
> 
> the core issue is probably:
> 
>  jiffies.h:#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
> 
> the thing is, we did INITIAL_JIFFIES to find _in kernel_ jiffies 
> wraparoudn bugs (hung timers, broken drivers, etc.) - we did not want to 
> confuse userspace with it.
> 
> So how about adding INITIAL_JIFFIES to the sys_times() return value?

I can't believe people are still making suggestions which just paper
over this issue. :-)

This thing is going to wrap eventually, so wouldn't it be nice to wrap
IMMEDIATELY so that you can trigger the problem and get it really
fixed now?  And that's exactly how things work at the moment.

On another note, this wouldn't be an issue if x86 did some condition
code thing to indicate errors.  We all know this.  So why don't we put
some kind of condition code setting support into the x86 syscall
return path now and perhaps 5 years from now the userspace on most
Linux machines will understand it and this bug will be essentially gone?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ