[9.20] fix: dev: Fix the resesuid() shim implementation for NetBSD

The shim implementation of setresuid() was wrong - there was a copy and
paste error and it was calling setresgid() instead.  This only affects
NetBSD because Linux, FreeBSD and OpenBSD have setresuid() and
setresgid() implementation available from the system library.

Closes #4862

Backport of MR !9359

Merge branch 'backport-4862-fix-setresuid-shim-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!9361
This commit is contained in:
Ondřej Surý
2024-08-20 11:07:26 +00:00

View File

@@ -295,11 +295,11 @@ setresuid(uid_t ruid, uid_t euid, uid_t suid) {
REQUIRE(ruid == (uid_t)-1);
REQUIRE(suid == (uid_t)-1);
#if HAVE_SETREGID
return (setregid(ruid, euid));
#else /* HAVE_SETREGID */
return (setegid(euid));
#endif /* HAVE_SETREGID */
#if HAVE_SETREUID
return (setreuid(ruid, euid));
#else /* HAVE_SETREUID */
return (seteuid(euid));
#endif /* HAVE_SETREUID */
}
#endif /* !HAVE_SETRESUID */