Skip to content

Commit

Permalink
chore(core): Protect all calls to resolveFile() with proper errors
Browse files Browse the repository at this point in the history
  • Loading branch information
alerque committed Oct 11, 2023
1 parent 3bc09f7 commit ff18bbc
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
5 changes: 1 addition & 4 deletions core/sile.lua
Original file line number Diff line number Diff line change
Expand Up @@ -330,10 +330,7 @@ function SILE.processFile (filename, format, options)
if SILE.masterDir and SILE.masterDir:len() >= 1 then
_G.extendSilePath(SILE.masterDir)
end
filename = SILE.resolveFile(filename)
if not filename then
SU.error("Could not find file")
end
filename = SILE.resolveFile(filename) or SU.error("Could not find file")
local mode = lfs.attributes(filename).mode
if mode ~= "file" and mode ~= "named pipe" then
SU.error(filename.." isn't a file or named pipe, it's a ".. mode .."!")
Expand Down
8 changes: 4 additions & 4 deletions packages/bibtex/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ end)
---@diagnostic enable: undefined-global, unused-local, lowercase-global

local parseBibtex = function (fn)
fn = SILE.resolveFile(fn)
local fh,e = io.open(fn)
if e then SU.error("Error reading bibliography file "..e) end
fn = SILE.resolveFile(fn) or SU.error("Unable to resolve Bibtex file "..fn)
local fh, e = io.open(fn)
if e then SU.error("Error reading bibliography file: "..e) end
local doc = fh:read("*all")
local t = epnf.parsestring(bibtexparser, doc)
if not(t) or not(t[1]) or t.id ~= "document" then
if not t or not t[1] or t.id ~= "document" then
SU.error("Error parsing bibtex")
end
local entries = {}
Expand Down

0 comments on commit ff18bbc

Please sign in to comment.