Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@parallels.com>2015-05-29 16:01:00 +0300
committerPavel Emelyanov <xemul@parallels.com>2015-05-30 00:32:27 +0300
commitdbda403b8de7b0d94804916d0a557d25946eb7eb (patch)
tree0f33fb1d1e46861da49afba950ba7a973cb3a86e
parent5a9fe81b75a8beaa6798534d863c4cdc2f72807d (diff)
crit: Avoid full exception trace when meeting unknown magic in image (v2)
Signed-off-by: Pavel Emelyanov <xemul@parallels.com> Acked-by: Andrew Vagin <avagin@virtuozzo.com>
-rwxr-xr-xcrit9
-rw-r--r--pycriu/images/images.py8
2 files changed, 13 insertions, 4 deletions
diff --git a/crit b/crit
index 88f3b8eb7..350362c36 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 c8c2e9e7d..5efd60ba9 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]