Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753259AbcKRRzM (ORCPT ); Fri, 18 Nov 2016 12:55:12 -0500 Received: from mail-wm0-f50.google.com ([74.125.82.50]:38175 "EHLO mail-wm0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752280AbcKRRzL (ORCPT ); Fri, 18 Nov 2016 12:55:11 -0500 MIME-Version: 1.0 In-Reply-To: References: <1479376267-18486-1-git-send-email-mpe@ellerman.id.au> From: Kees Cook Date: Fri, 18 Nov 2016 09:55:08 -0800 X-Google-Sender-Auth: TKQM7hzXZ0yPnSgD_Bh6UxxNCdI Message-ID: Subject: Re: [PATCH v2] slab: Add POISON_POINTER_DELTA to ZERO_SIZE_PTR To: Christoph Lameter Cc: Michael Ellerman , Andrew Morton , Pekka Enberg , David Rientjes , Joonsoo Kim , Linux-MM , LKML , "kernel-hardening@lists.openwall.com" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 879 Lines: 27 On Fri, Nov 18, 2016 at 9:47 AM, Christoph Lameter wrote: > On Thu, 17 Nov 2016, Michael Ellerman wrote: > >> Currently ZERO_OR_NULL_PTR() uses a trick of doing a single check that >> x <= ZERO_SIZE_PTR, and ignoring the fact that it also matches 1-15. > > Well yes that was done so we do not add too many branches all over the > kernel..... There are actually very few callers of this macro. (Though it's possible they're executed frequently.) >> That no longer really works once we add the poison delta, so split it >> into two checks. Assign x to a temporary to avoid evaluating it >> twice (suggested by Kees Cook). > > And now you are doing just that. In this case, what about the original < ZERO_SIZE_PTR check Michael suggested? At least the one use in usercopy.c needs to be fixed, but otherwise, it should be fine? -Kees -- Kees Cook Nexus Security