Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be5c5d4e authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Daniel Borkmann
Browse files

libbpf: preserve errno before calling into user callback



pr_warning ultimately may call into user-provided callback function,
which can clobber errno value, so we need to save it before that.

Acked-by: default avatarSong Liu <songliubraving@fb.com>
Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent 8ca990ce
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -565,12 +565,12 @@ static int bpf_object__elf_init(struct bpf_object *obj)
	} else {
		obj->efile.fd = open(obj->path, O_RDONLY);
		if (obj->efile.fd < 0) {
			char errmsg[STRERR_BUFSIZE];
			char *cp = libbpf_strerror_r(errno, errmsg,
						     sizeof(errmsg));
			char errmsg[STRERR_BUFSIZE], *cp;

			err = -errno;
			cp = libbpf_strerror_r(err, errmsg, sizeof(errmsg));
			pr_warning("failed to open %s: %s\n", obj->path, cp);
			return -errno;
			return err;
		}

		obj->efile.elf = elf_begin(obj->efile.fd,