From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH] Re: [Xen-staging] [xen-unstable] [XEN] Avoid use of GNU-specific memmem(). Date: Fri, 05 Jan 2007 15:03:18 -0700 Message-ID: <1168034598.14363.158.camel@bling> References: <200701041018.l04AIJpZ016856@latara.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200701041018.l04AIJpZ016856@latara.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel List-Id: xen-devel@lists.xenproject.org On Thu, 2007-01-04 at 10:18 +0000, Xen staging patchbot-unstable wrote: > # HG changeset patch > # User kfraser@localhost.localdomain > # Date 1167905854 0 > # Node ID bdbfbfdfbd64ddedc775d55f1a9e842847fea7b2 > # Parent 60f91c9f1a248491e2f216d009a27a4c7e5e67d4 > [XEN] Avoid use of GNU-specific memmem(). > --- a/xen/tools/symbols.c Wed Jan 03 23:53:27 2007 +0000 > +++ b/xen/tools/symbols.c Thu Jan 04 10:17:34 2007 +0000 > @@ -350,6 +350,14 @@ static void build_initial_tok_table(void > table_cnt = pos; > } > > +static void *memmem_pvt(void *h, size_t hlen, void *n, size_t nlen) > +{ > + char *p; > + for (p = h; (p - (char *)h) <= (hlen - nlen); p++) > + if (!memcmp(p, n, nlen)) return p; > + return NULL; > +} size_t is unsigned, (hlen - nlen) can wrap and cause a segfault. The patch below fixes it. Thanks, Alex Signed-off-by: Alex Williamson --- diff -r a8930b548048 xen/tools/symbols.c --- a/xen/tools/symbols.c Fri Jan 05 14:36:55 2007 -0700 +++ b/xen/tools/symbols.c Fri Jan 05 14:58:21 2007 -0700 @@ -353,7 +353,7 @@ static void *memmem_pvt(void *h, size_t static void *memmem_pvt(void *h, size_t hlen, void *n, size_t nlen) { char *p; - for (p = h; (p - (char *)h) <= (hlen - nlen); p++) + for (p = h; (p - (char *)h) <= (long)(hlen - nlen); p++) if (!memcmp(p, n, nlen)) return p; return NULL; }