Skip to content

Commit

Permalink
ljsyscall: fix a bug in getsockopt when querying for structs
Browse files Browse the repository at this point in the history
  • Loading branch information
eugeneia committed Nov 12, 2019
1 parent 09b29d9 commit 3f82010
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/ljsyscall/syscall/syscalls.lua
Expand Up @@ -327,7 +327,9 @@ function S.getsockopt(fd, level, optname, optval, optlen)
local ret, err = C.getsockopt(getfd(fd), c.SOL[level], c.SO[optname], optval, len)
if ret == -1 then return nil, t.error(err or errno()) end
if len[0] ~= optlen then error("incorrect optlen for getsockopt: set " .. optlen .. " got " .. len[0]) end
return optval[0] -- TODO will not work if struct, eg see netfilter
local ok, ret = pcall(function () return optval[0] end)
if ok then return ret
else return optval end
end
function S.bind(sockfd, addr, addrlen)
local saddr = pt.sockaddr(addr)
Expand Down

0 comments on commit 3f82010

Please sign in to comment.