Commit bb5747cf authored by Alexei Starovoitov's avatar Alexei Starovoitov
Browse files

libbpf: Restore errno after pr_warn.



pr_warn calls into user-provided callback, which can clobber errno, so
`errno = saved_errno` should happen after pr_warn.

Fixes: 07453245 ("libbpf: fix errno is overwritten after being closed.")
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 678a1c03
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -544,8 +544,10 @@ static inline int ensure_good_fd(int fd)
		saved_errno = errno;
		close(old_fd);
		errno = saved_errno;
		if (fd < 0)
		if (fd < 0) {
			pr_warn("failed to dup FD %d to FD > 2: %d\n", old_fd, -saved_errno);
			errno = saved_errno;
		}
	}
	return fd;
}