--- /dev/null
+From 9ac650401ffc2fb05c9328d26e76a5e7ae39152a Mon Sep 17 00:00:00 2001
+From: Matt Johnston <matt@ucc.asn.au>
+Date: Mon, 11 Dec 2023 23:31:22 +0800
+Subject: Fix test for multiuser kernels
+
+getuid() succeeds even on non-multiuser kernels. Instead
+getgroups() is a valid test.
+
+Fixes #214 on github
+---
+ common-session.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+--- a/common-session.c
++++ b/common-session.c
+@@ -71,10 +71,13 @@ void common_session_init(int sock_in, in
+ #if !DROPBEAR_SVR_MULTIUSER
+ /* A sanity check to prevent an accidental configuration option
+ leaving multiuser systems exposed */
+- errno = 0;
+- getuid();
+- if (errno != ENOSYS) {
+- dropbear_exit("Non-multiuser Dropbear requires a non-multiuser kernel");
++ {
++ int ret;
++ errno = 0;
++ ret = getgroups(0, NULL);
++ if (!(ret == -1 && errno == ENOSYS)) {
++ dropbear_exit("Non-multiuser Dropbear requires a non-multiuser kernel");
++ }
+ }
+ #endif
+