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

[Xen-changelog] [xen-unstable] acm, xend: Follow linked files.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxxxxxxxx>
# Date 1193909867 0
# Node ID ba1b6f9d33f58ab6064fe6a5d6eddf5ddfbed295
# Parent  76f30b65854fc69cab1f99182d7a4cf8eb20c9b8
acm, xend: Follow linked files.
Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>
---
 tools/python/xen/util/xsm/acm/acm.py |   31 +++++++++++--------------------
 1 files changed, 11 insertions(+), 20 deletions(-)

diff -r 76f30b65854f -r ba1b6f9d33f5 tools/python/xen/util/xsm/acm/acm.py
--- a/tools/python/xen/util/xsm/acm/acm.py      Thu Nov 01 09:36:46 2007 +0000
+++ b/tools/python/xen/util/xsm/acm/acm.py      Thu Nov 01 09:37:47 2007 +0000
@@ -711,33 +711,24 @@ def unify_resname(resource, mustexist=Tr
         except:
             err("Resource spec '%s' contains no tap subtype" % resource)
 
-    import os
-    if typ in ["phy", "tap"]:
+    if typ in ["phy"]:
         if not resfile.startswith("/"):
             resfile = "/dev/" + resfile
         if mustexist:
-            stats = os.lstat(resfile)
-            if stat.S_ISLNK(stats[stat.ST_MODE]):
-                resolved = os.readlink(resfile)
-                if resolved[0] != "/":
-                    resfile = os.path.join(os.path.dirname(resfile), resolved)
-                    resfile = os.path.abspath(resfile)
-                else:
-                    resfile = resolved
+            resfile = os.path.realpath(resfile)
+            try:
                 stats = os.lstat(resfile)
-            if not (stat.S_ISBLK(stats[stat.ST_MODE])):
+                if not (stat.S_ISBLK(stats[stat.ST_MODE])):
+                    err("Invalid resource")
+            except:
                 err("Invalid resource")
 
     if typ in [ "file", "tap" ]:
-        if mustexist:
-            stats = os.lstat(resfile)
-            if stat.S_ISLNK(stats[stat.ST_MODE]):
-                resfile = os.readlink(resfile)
-                stats = os.lstat(resfile)
-            if not stat.S_ISREG(stats[stat.ST_MODE]):
-                err("Invalid resource")
-
-    #file: resources must specified with absolute path
+        resfile = os.path.realpath(resfile)
+        if mustexist and not os.path.isfile(resfile):
+            err("Invalid resource")
+
+    #file: resources must be specified with absolute path
     #vlan resources don't start with '/'
     if typ != "vlan":
         if (not resfile.startswith("/")) or \

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


 


Rackspace

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