Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2016 11:05:20 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Matthew Macy <mmacy@nextbsd.org>, "freebsd-x11@freebsd.org" <freebsd-x11@freebsd.org>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: CFT update day 2
Message-ID:  <b4ed28f1-9366-d716-0092-2c2aa542056f@selasky.org>
In-Reply-To: <154dcac7f27.f5da66a0148247.6294302194451585046@nextbsd.org>
References:  <154dcac7f27.f5da66a0148247.6294302194451585046@nextbsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 05/23/16 10:12, Matthew Macy wrote:
> - Will Andrews identified a conditionally uninitialized return in
>   idr_find that could lead to a panic in some cases.

FYI

If you integrate linux_idr.c from FreeBSD-11-current, this problem and a 
few others should already be solved:

For example there:

	while ((il = idr_find_layer_locked(idr, i)) != NULL) {

The following loop is buggy:
		for (;i  <  (i & ~IDR_MASK) + IDR_SIZE; i++) {
			if (il->ary[i & IDR_MASK]) {
				*nextidp = i;

And equivalent to a "while (true)", which I believe this is not the 
intention.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b4ed28f1-9366-d716-0092-2c2aa542056f>