diff options
author | Pavel Emelyanov <xemul@parallels.com> | 2015-05-29 16:01:00 +0300 |
---|---|---|
committer | Pavel Emelyanov <xemul@parallels.com> | 2015-05-30 00:32:27 +0300 |
commit | dbda403b8de7b0d94804916d0a557d25946eb7eb (patch) | |
tree | 0f33fb1d1e46861da49afba950ba7a973cb3a86e | |
parent | 5a9fe81b75a8beaa6798534d863c4cdc2f72807d (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-x | crit | 9 | ||||
-rw-r--r-- | pycriu/images/images.py | 8 |
2 files changed, 13 insertions, 4 deletions
@@ -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] |