xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: xen-devel@lists.xensource.com
Cc: David Vrabel <david.vrabel@citrix.com>,
	Santosh Jodh <santosh.jodh@citrix.com>
Subject: [PATCH] libxc: remove tests of alloca() return value
Date: Fri, 17 Feb 2012 12:10:42 +0000	[thread overview]
Message-ID: <1329480642-27378-1-git-send-email-david.vrabel@citrix.com> (raw)

From: David Vrabel <david.vrabel@citrix.com>

alloca() does not return NULL on an allocation failure so remove the
unneccessary tests.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Cc: Santosh Jodh <santosh.jodh@citrix.com>
---
 tools/libxc/xc_linux_osdep.c |   79 ++++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 45 deletions(-)

diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
index 779fcd7..896f5c1 100644
--- a/tools/libxc/xc_linux_osdep.c
+++ b/tools/libxc/xc_linux_osdep.c
@@ -243,63 +243,54 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
          * IOCTL_PRIVCMD_MMAPBATCH_V2 is not supported - fall back to
          * IOCTL_PRIVCMD_MMAPBATCH.
          */
+        privcmd_mmapbatch_t ioctlx;
         xen_pfn_t *pfn = alloca(num * sizeof(*pfn));
 
-        if ( pfn )
-        {
-            privcmd_mmapbatch_t ioctlx;
-
-            memcpy(pfn, arr, num * sizeof(*arr));
+        memcpy(pfn, arr, num * sizeof(*arr));
 
-            ioctlx.num = num;
-            ioctlx.dom = dom;
-            ioctlx.addr = (unsigned long)addr;
-            ioctlx.arr = pfn;
+        ioctlx.num = num;
+        ioctlx.dom = dom;
+        ioctlx.addr = (unsigned long)addr;
+        ioctlx.arr = pfn;
 
-            rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx);
+        rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx);
 
-            rc = rc < 0 ? -errno : 0;
+        rc = rc < 0 ? -errno : 0;
 
-            for ( i = 0; i < num; ++i )
+        for ( i = 0; i < num; ++i )
+        {
+            switch ( pfn[i] ^ arr[i] )
             {
-                switch ( pfn[i] ^ arr[i] )
+            case 0:
+                err[i] = rc != -ENOENT ? rc : 0;
+                continue;
+            default:
+                err[i] = -EINVAL;
+                continue;
+            case XEN_DOMCTL_PFINFO_PAGEDTAB:
+                if ( rc != -ENOENT )
                 {
-                case 0:
-                    err[i] = rc != -ENOENT ? rc : 0;
+                    err[i] = rc ?: -EINVAL;
                     continue;
-                default:
-                    err[i] = -EINVAL;
-                    continue;
-                case XEN_DOMCTL_PFINFO_PAGEDTAB:
-                    if ( rc != -ENOENT )
-                    {
-                        err[i] = rc ?: -EINVAL;
-                        continue;
-                    }
-                    rc = xc_map_foreign_batch_single(fd, dom, pfn + i,
+                 }
+                rc = xc_map_foreign_batch_single(fd, dom, pfn + i,
                         (unsigned long)addr + ((unsigned long)i<<XC_PAGE_SHIFT));
-                    if ( rc < 0 )
-                    {
-                        rc = -errno;
-                        break;
-                    }
-                    rc = -ENOENT;
-                    continue;
+                if ( rc < 0 )
+                {
+                    rc = -errno;
+                    break;
                 }
-                break;
-            }
-
-            if ( rc == -ENOENT && i == num )
-                rc = 0;
-            else if ( rc )
-            {
-                errno = -rc;
-                rc = -1;
+                rc = -ENOENT;
+                continue;
             }
+            break;
         }
-        else
+
+        if ( rc == -ENOENT && i == num )
+            rc = 0;
+        else if ( rc )
         {
-            errno = -ENOMEM;
+            errno = -rc;
             rc = -1;
         }
     }
@@ -525,8 +516,6 @@ static void *linux_gnttab_grant_map(xc_gnttab *xch, xc_osdep_handle h,
 
     map = alloca(sizeof(*map) +
                  (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref));
-    if ( map == NULL )
-        return NULL;
 
     for ( i = 0; i < count; i++ )
     {
-- 
1.7.2.5

             reply	other threads:[~2012-02-17 12:10 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-17 12:10 David Vrabel [this message]
2012-02-17 13:24 ` [PATCH] libxc: remove tests of alloca() return value Tim Deegan
2012-02-17 13:32   ` David Vrabel
2012-02-17 13:38     ` Tim Deegan
2012-02-20 17:31 ` Ian Jackson

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=1329480642-27378-1-git-send-email-david.vrabel@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=santosh.jodh@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).