From d960282b105a6469c760b4308a3b81da723b7256 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 28 Dec 2021 16:31:54 -0800 Subject: Use `splitDirectories` istead of `splitPath`. We were using `splitPath` in two places in the code where `splitDirectories` should have been used. This led to a test for `..` in paths in `extractMedia` failing, so that images with `..` in the path name could be extracted outside the directory specified by `extractMedia`. It also led a test for `media` in resource paths to fail in the docx reader. --- src/Text/Pandoc/MediaBag.hs | 2 +- src/Text/Pandoc/Readers/Docx/Parse.hs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/MediaBag.hs b/src/Text/Pandoc/MediaBag.hs index 098e484ee..eb4f3110c 100644 --- a/src/Text/Pandoc/MediaBag.hs +++ b/src/Text/Pandoc/MediaBag.hs @@ -80,7 +80,7 @@ insertMedia fp mbMime contents (MediaBag mediamap) = uri = parseURI fp newpath = if isRelative fp && isNothing uri - && ".." `notElem` splitPath fp + && ".." `notElem` splitDirectories fp then T.unpack fp' else showDigest (sha1 contents) <> "." <> ext fallback = case takeExtension fp of diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index 0021741ed..87a3aebef 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -505,7 +505,7 @@ archiveToRelationships archive docXmlPath = filePathIsMedia :: FilePath -> Bool filePathIsMedia fp = - "media" `elem` splitPath (takeDirectory fp) + "media" `elem` splitDirectories (takeDirectory fp) lookupLevel :: T.Text -> T.Text -> Numbering -> Maybe Level lookupLevel numId ilvl (Numbering _ numbs absNumbs) = do -- cgit v1.2.3