[bmap-tools] [PATCH 09/20] Fiemap: fix failure for zero-sized files

Artem Bityutskiy dedekind1 at gmail.com
Wed Sep 18 03:38:21 EDT 2013


From: Artem Bityutskiy <artem.bityutskiy at intel.com>

The Fiemap module fails for zero-sized file with these symptoms:

Traceback (most recent call last):
  File "./bmaptool", line 561, in <module>
    sys.exit(main())
  File "./bmaptool", line 545, in main
    args.func(args, log)
  File "./bmaptool", line 419, in create_command
    creator = BmapCreate.BmapCreate(args.image, output, "sha256")
  File "/mnt/bigssd/dedekind/work/tizen/git/bmap-tools/bmaptools/BmapCreate.py", line 163, in __init__
    self.fiemap = Fiemap.Fiemap(self._f_image)
  File "/mnt/bigssd/dedekind/work/tizen/git/bmap-tools/bmaptools/Fiemap.py", line 120, in __init__
    self.block_is_mapped(0)
  File "/mnt/bigssd/dedekind/work/tizen/git/bmap-tools/bmaptools/Fiemap.py", line 175, in block_is_mapped
    struct_fiemap = self._invoke_fiemap(block, 1)
  File "/mnt/bigssd/dedekind/work/tizen/git/bmap-tools/bmaptools/Fiemap.py", line 149, in _invoke_fiemap
    % (block, self.blocks_cnt))

This patch fixes the issue.

Change-Id: I3eb2c6e69c892aea2a3d41f2b9bf830907d7658e
Signed-off-by: Artem Bityutskiy <artem.bityutskiy at intel.com>
---
 bmaptools/Fiemap.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bmaptools/Fiemap.py b/bmaptools/Fiemap.py
index 3066f18..9413358 100644
--- a/bmaptools/Fiemap.py
+++ b/bmaptools/Fiemap.py
@@ -144,7 +144,7 @@ class Fiemap:
         list (just like 'struct.upack()').
         """
 
-        if block < 0 or block >= self.blocks_cnt:
+        if self.blocks_cnt != 0 and (block < 0 or block >= self.blocks_cnt):
             raise Error("bad block number %d, should be within [0, %d]"
                         % (block, self.blocks_cnt))
 
-- 
1.8.1.4




More information about the Bmap-tools mailing list