From 63b6550e21ca0e3b2d3ff5afeba479c0c3bec147 Mon Sep 17 00:00:00 2001 From: "Marshall T. Vandegrift" Date: Sun, 20 Jul 2008 01:02:14 -0400 Subject: [PATCH] Fix for LIT files with '..' in filename paths --- src/calibre/ebooks/lit/reader.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/lit/reader.py b/src/calibre/ebooks/lit/reader.py index 65fce4f3e9..2a862141d1 100644 --- a/src/calibre/ebooks/lit/reader.py +++ b/src/calibre/ebooks/lit/reader.py @@ -331,7 +331,15 @@ class ManifestItem(object): self.offset = offset self.root = root self.state = state - self.path = self.original + # Some paths in Fictionwise "multiformat" LIT files contain '..' (!?) + nodes = original.split('/') + path = [] + for node in nodes: + if node == '..': + if path: path.pop() + continue + path.append(node) + self.path = os.path.join(*path) def __eq__(self, other): if hasattr(other, 'internal'):