getuid() is called indirectly by libparted during file system
bootstrap when using a gpt partitioned disk. This is within
uuid_generate() in libuuid. Returning the root uid 0 at this time is
appropriate as a special case.
---
 sysdeps/mach/hurd/getuid.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sysdeps/mach/hurd/getuid.c b/sysdeps/mach/hurd/getuid.c
index 7de221c945..4520919934 100644
--- a/sysdeps/mach/hurd/getuid.c
+++ b/sysdeps/mach/hurd/getuid.c
@@ -27,6 +27,10 @@ __getuid (void)
   error_t err;
   uid_t uid;
 
+  if (_hurd_ports == NULL)
+    /* We are still in system bootstrap. */
+    return 0;
+
 retry:
   HURD_CRITICAL_BEGIN;
   __mutex_lock (&_hurd_id.lock);
-- 
2.47.3


Reply via email to