Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1464577

Re: [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption

From Steven Rostedt <rostedt@goodmis.org>
Newsgroups linux.kernel
Subject Re: [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption
Date 2016-08-17 15:30 +0200
Message-ID <s794R-1zw-7@gated-at.bofh.it> (permalink)
References <s6WU2-1Ld-3@gated-at.bofh.it> <s6WU2-1Ld-25@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, 16 Aug 2016 17:20:28 -0700
Kees Cook <keescook@chromium.org> wrote:


>  EXPORT_SYMBOL(__list_add_valid);
> @@ -46,26 +41,18 @@ bool __list_del_entry_valid(struct list_head *entry)
>  	prev = entry->prev;
>  	next = entry->next;
>  
> -	if (unlikely(next == LIST_POISON1)) {
> -		WARN(1, "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
> -			entry, LIST_POISON1);
> -		return false;
> -	}
> -	if (unlikely(prev == LIST_POISON2)) {
> -		WARN(1, "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
> -			entry, LIST_POISON2);
> -		return false;
> -	}
> -	if (unlikely(prev->next != entry)) {
> -		WARN(1, "list_del corruption. prev->next should be %p, but was %p\n",
> -			entry, prev->next);
> -		return false;
> -	}
> -	if (unlikely(next->prev != entry)) {
> -		WARN(1, "list_del corruption. next->prev should be %p, but was %p\n",
> -			entry, next->prev);
> -		return false;
> -	}
> +	CHECK_DATA_CORRUPTION(next == LIST_POISON1,
> +		"list_del corruption, %p->next is LIST_POISON1 (%p)\n",
> +		entry, LIST_POISON1);
> +	CHECK_DATA_CORRUPTION(prev == LIST_POISON2,
> +		"list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
> +		entry, LIST_POISON2);
> +	CHECK_DATA_CORRUPTION(prev->next != entry,
> +		"list_del corruption. prev->next should be %p, but was %p\n",
> +		entry, prev->next);
> +	CHECK_DATA_CORRUPTION(next->prev != entry,
> +		"list_del corruption. next->prev should be %p, but was %p\n",
> +		entry, next->prev);

OK, you totally rewrote the WARN() section anyway, thus ignore my
comment on the previous email.

-- Steve

>  	return true;
>  
>  }

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/5] bug: Provide toggle for BUG on data corruption Kees Cook <keescook@chromium.org> - 2016-08-17 02:30 +0200
  [PATCH v2 1/5] list: Split list_add() debug checking into separate function Kees Cook <keescook@chromium.org> - 2016-08-17 02:30 +0200
    Re: [PATCH v2 1/5] list: Split list_add() debug checking into  separate function Steven Rostedt <rostedt@goodmis.org> - 2016-08-17 15:20 +0200
  [PATCH v2 2/5] rculist: Consolidate DEBUG_LIST for list_add_rcu() Kees Cook <keescook@chromium.org> - 2016-08-17 02:30 +0200
  Re: [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption Joe Perches <joe@perches.com> - 2016-08-17 02:30 +0200
    Re: [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption Kees Cook <keescook@chromium.org> - 2016-08-17 05:40 +0200
  [PATCH v2 5/5] lkdtm: Add tests for struct list corruption Kees Cook <keescook@chromium.org> - 2016-08-17 02:30 +0200
  [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption Kees Cook <keescook@chromium.org> - 2016-08-17 02:50 +0200
    Re: [PATCH v2 4/5] bug: Provide toggle for BUG on data corruption Steven Rostedt <rostedt@goodmis.org> - 2016-08-17 15:30 +0200
  [PATCH v2 3/5] list: Split list_del() debug checking into separate function Kees Cook <keescook@chromium.org> - 2016-08-17 02:50 +0200
  Re: [PATCH v2 0/5] bug: Provide toggle for BUG on data corruption Henrique de Moraes Holschuh <hmh@hmh.eng.br> - 2016-08-17 03:00 +0200
    Re: [PATCH v2 0/5] bug: Provide toggle for BUG on data corruption Kees Cook <keescook@chromium.org> - 2016-08-17 05:40 +0200
  Re: [PATCH v2 0/5] bug: Provide toggle for BUG on data corruption Stephen Boyd <sboyd@codeaurora.org> - 2016-08-17 22:20 +0200
    Re: [PATCH v2 0/5] bug: Provide toggle for BUG on data corruption Kees Cook <keescook@chromium.org> - 2016-08-17 23:20 +0200

csiph-web