The defer logic was a little tricky and was hiding one bug: `err` was being redefined (with `:=`) and thus it escaped the defer error checking logic. Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com> Upstream-commit: 300c51c3a4ca47b022eb2efb75d1e8cf7736b0ff Component: engine