diff options
author | John MacFarlane <jgm@berkeley.edu> | 2021-12-28 16:31:54 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2021-12-28 16:31:54 -0800 |
commit | d960282b105a6469c760b4308a3b81da723b7256 (patch) | |
tree | 852e55c7e42a15b6408b6d939aba69da1ad672f4 | |
parent | 7d56650e0137daf504fdd79187811f091d4eee37 (diff) | |
download | pandoc-d960282b105a6469c760b4308a3b81da723b7256.tar.gz |
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.
-rw-r--r-- | src/Text/Pandoc/MediaBag.hs | 2 | ||||
-rw-r--r-- | 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 |