[CRIU] [PATCH] crit: Avoid full exception trace when meeting unknown magic in image (v2)

Pavel Emelyanov xemul at parallels.com
Fri May 29 06:01:55 PDT 2015


Signed-off-by: Pavel Emelyanov <xemul at parallels.com>

---

diff --git a/crit b/crit
index 88f3b8e..350362c 100755
--- a/crit
+++ b/crit
@@ -20,7 +20,14 @@ def outf(opts):
 
 def decode(opts):
 	indent = None
-	img = pycriu.images.load(inf(opts), opts['pretty'])
+
+	try:
+		img = pycriu.images.load(inf(opts), opts['pretty'])
+	except pycriu.images.MagicException as exc:
+		print >>sys.stderr, "Unknown magic %#x.\n"\
+				"Maybe you are feeding me an image with "\
+				"raw data(i.e. pages.img)?" % exc.magic
+		sys.exit(1)
 
 	if opts['pretty']:
 		indent = 4
diff --git a/pycriu/images/images.py b/pycriu/images/images.py
index c8c2e9e..5efd60b 100644
--- a/pycriu/images/images.py
+++ b/pycriu/images/images.py
@@ -50,6 +50,10 @@ import pb2dict
 import magic
 from pb import *
 
+class MagicException(Exception):
+	def __init__(self, magic):
+		self.magic = magic
+
 # Generic class to handle loading/dumping criu images entries from/to bin
 # format to/from dict(json).
 class entry_handler:
@@ -300,9 +304,7 @@ def load(f, pretty = False):
 	try:
 		m = magic.by_val[img_magic]
 	except:
-		raise Exception("Unknown magic "+str(img_magic)+".\n"\
-				"Maybe you are feeding me an image with "\
-				"raw data(i.e. pages.img)?")
+		raise MagicException(img_magic)
 
 	try:
 		handler = handlers[m]




More information about the CRIU mailing list