]> xenbits.xensource.com Git - xen.git/commitdiff
tools/pygrub: Fix error handling if no valid partitions are found
authorAndrew Cooper <andrew.cooper3@citrix.com>
Sat, 10 May 2014 01:18:33 +0000 (02:18 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 22 May 2014 15:50:10 +0000 (16:50 +0100)
If no partitions at all are found, pygrub never creates the name 'fs',
resulting in a NameError indicating the lack of fs, rather than a
RuntimeError explaining that no partitions were found.

Set fs to None right at the start, and use the pythonic idiom "if fs is None:"
to protect against otherwise valid values for fs which compare equal to
0/False.

Reported-by: Sven Köhler <sven.koehler@gmail.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
(cherry picked from commit d75215805ce6ed20b3807955fab6a7f7a3368bee)
(cherry picked from commit 5ee75ef147f83457fa28d4d4374efcf066581e26)
(cherry picked from commit 11b2541f458a3d09c63980e669c166cf6e96980a)

tools/pygrub/src/pygrub

index ca9b00033b29f96f8849e8d13221553e981b92a7..5f999de7efe43ba6c10e6e7fcb8e2254edba4f20 100644 (file)
@@ -750,7 +750,7 @@ if __name__ == "__main__":
         usage()
         sys.exit(1)
     file = args[0]
-        
+    fs = None
     output = None
     entry = None
     interactive = True
@@ -857,7 +857,7 @@ if __name__ == "__main__":
             continue
 
     # Did looping through partitions find us a kernel?
-    if not fs:
+    if fs is None:
         raise RuntimeError, "Unable to find partition containing kernel"
 
     bootcfg["kernel"] = copy_from_image(fs, chosencfg["kernel"], "kernel",