From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v2] vsprintf: Make sure argument to %pX specifier is valid Date: Thu, 12 Feb 2015 11:41:38 -0500 Message-ID: <54DCD7C2.8040902@oracle.com> References: <1423688332-3464-1-git-send-email-boris.ostrovsky@oracle.com> <54DC88D3.5080803@citrix.com> <54DCC060.8040208@oracle.com> <54DCC4E6.6070908@citrix.com> <54DCC8E5.8080305@oracle.com> <54DCCB3B.8090703@citrix.com> <54DCD5C6.603@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <54DCD5C6.603@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper , ian.campbell@citrix.com, ian.jackson@eu.citrix.com, jbeulich@suse.com, keir@xen.org, tim@xen.org Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 02/12/2015 11:33 AM, Boris Ostrovsky wrote: > > > Also, for %*ph format, if we just go with falling through to plain > format and not marking somehow that we are printing a bad pointer: > > unsigned badval = 0xab; > unsigned *badptr = &badval; > printk("badptr = %*ph\n", 1, badptr); > > console: > badptr = ab > > We don't know here whether badptr was pointing to 0xab or it itself > was 0xab. > Ugh, bad example. Here is what I meant: unsigned badval = 0xab; unsigned *badptr = &badval; unsigned *badvalptr = (void *)0xab; printk("badvalptr = %*ph badptr = %*ph\n", 1, badvalptr, 1, badptr); console: badvalptr = ab badptr = ab Sorry. -boris