[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Re: [Xen-staging] [xen-unstable] [XEN] Avoid use of GNU-specific memmem().



On Thu, 2007-01-04 at 10:18 +0000, Xen staging patchbot-unstable wrote:
> # HG changeset patch
> # User kfraser@xxxxxxxxxxxxxxxxxxxxx
> # 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 <alex.williamson@xxxxxx>
---

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;
 }




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.