All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Deegan <Tim.Deegan@citrix.com>
To: xen-devel@lists.xensource.com
Subject: [PATCH] Xen: fix various checks of unsigned integers < 0
Date: Fri, 29 Oct 2010 15:02:19 +0100	[thread overview]
Message-ID: <20101029140219.GD11016@whitby.uk.xensource.com> (raw)

# HG changeset patch
# User Tim Deegan <Tim.Deegan@citrix.com>
# Date 1288360674 -3600
# Node ID 52ce5ef855cf2582749d2d0812754ac074cc14e9
# Parent  3cc0fac4a49e29ca0b841c8354a0a9c0686e3d58
Xen: fix various checks of unsigned integers < 0

Some of these could be benignly discarded by the compiler but some are
actual bugs.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>

diff -r 3cc0fac4a49e -r 52ce5ef855cf xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c	Fri Oct 29 14:57:50 2010 +0100
+++ b/xen/arch/x86/mm.c	Fri Oct 29 14:57:54 2010 +0100
@@ -4533,7 +4533,7 @@ static int handle_iomem_range(unsigned l
         ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
         ent.type = E820_RESERVED;
         buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
-        if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) < 0 )
+        if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
             return -EFAULT;
         ctxt->n++;
     }
@@ -4750,7 +4750,7 @@ long arch_memory_op(int op, XEN_GUEST_HA
             }
             if ( ctxt.map.nr_entries <= ctxt.n + (e820.nr_map - i) )
                 return -EINVAL;
-            if ( __copy_to_guest_offset(buffer, ctxt.n, e820.map + i, 1) < 0 )
+            if ( __copy_to_guest_offset(buffer, ctxt.n, e820.map + i, 1) )
                 return -EFAULT;
             ctxt.s = PFN_UP(e820.map[i].addr + e820.map[i].size);
         }
diff -r 3cc0fac4a49e -r 52ce5ef855cf xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c	Fri Oct 29 14:57:50 2010 +0100
+++ b/xen/arch/x86/physdev.c	Fri Oct 29 14:57:54 2010 +0100
@@ -202,7 +202,7 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
         if ( copy_from_guest(&eoi, arg, 1) != 0 )
             break;
         ret = -EINVAL;
-        if ( eoi.irq < 0 || eoi.irq >= v->domain->nr_pirqs )
+        if ( eoi.irq >= v->domain->nr_pirqs )
             break;
         if ( v->domain->arch.pirq_eoi_map )
             evtchn_unmask(v->domain->pirq_to_evtchn[eoi.irq]);
diff -r 3cc0fac4a49e -r 52ce5ef855cf xen/arch/x86/platform_hypercall.c
--- a/xen/arch/x86/platform_hypercall.c	Fri Oct 29 14:57:50 2010 +0100
+++ b/xen/arch/x86/platform_hypercall.c	Fri Oct 29 14:57:54 2010 +0100
@@ -418,7 +418,6 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
         }
 
         if ( (g_info->xen_cpuid >= NR_CPUS) ||
-             (g_info->xen_cpuid < 0) ||
              !cpu_present(g_info->xen_cpuid) )
         {
             g_info->flags |= XEN_PCPU_FLAGS_INVALID;
diff -r 3cc0fac4a49e -r 52ce5ef855cf xen/arch/x86/x86_emulate/x86_emulate.c
--- a/xen/arch/x86/x86_emulate/x86_emulate.c	Fri Oct 29 14:57:50 2010 +0100
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c	Fri Oct 29 14:57:54 2010 +0100
@@ -2102,7 +2102,7 @@ x86_emulate(
             _regs.edx = (uint32_t)(((int32_t)_regs.eax < 0) ? -1 : 0);
             break;
         case 8:
-            _regs.edx = (_regs.eax < 0) ? -1 : 0;
+            _regs.edx = ((int64_t)_regs.eax < 0) ? -1 : 0;
             break;
         }
         break;
diff -r 3cc0fac4a49e -r 52ce5ef855cf xen/drivers/cpufreq/cpufreq.c
--- a/xen/drivers/cpufreq/cpufreq.c	Fri Oct 29 14:57:50 2010 +0100
+++ b/xen/drivers/cpufreq/cpufreq.c	Fri Oct 29 14:57:54 2010 +0100
@@ -116,8 +116,7 @@ int cpufreq_limit_change(unsigned int cp
         !processor_pminfo[cpu])
         return -ENODEV;
 
-    if ((perf->platform_limit < 0) || 
-        (perf->platform_limit >= perf->state_count))
+    if (perf->platform_limit >= perf->state_count)
         return -EINVAL;
 
     memcpy(&policy, data, sizeof(struct cpufreq_policy)); 

             reply	other threads:[~2010-10-29 14:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-29 14:02 Tim Deegan [this message]
2010-10-29 15:38 ` [PATCH] Xen: fix various checks of unsigned integers < 0 Dan Magenheimer
2010-10-29 21:23   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101029140219.GD11016@whitby.uk.xensource.com \
    --to=tim.deegan@citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.