Subject: tools/pygrub: Fix error handling if no valid partitions are found From: Andrew Cooper andrew.cooper3@citrix.com Sat May 10 02:18:33 2014 +0100 Date: Mon May 12 15:52:43 2014 +0100: Git: d75215805ce6ed20b3807955fab6a7f7a3368bee 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 Signed-off-by: Andrew Cooper CC: Ian Campbell Acked-by: Ian Jackson Index: xen-4.4.0-testing/tools/pygrub/src/pygrub =================================================================== --- xen-4.4.0-testing.orig/tools/pygrub/src/pygrub +++ xen-4.4.0-testing/tools/pygrub/src/pygrub @@ -760,7 +760,7 @@ if __name__ == "__main__": usage() sys.exit(1) file = args[0] - + fs = None output = None entry = None interactive = True @@ -882,7 +882,7 @@ if __name__ == "__main__": sys.exit(0) # 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",