--- a/src/os/user/lookup_unix.go
+++ b/src/os/user/lookup_unix.go
@@ -57,6 +57,12 @@
 		bufSize = 1024
 	} else {
 		bufSize = C.sysconf(C._SC_GETPW_R_SIZE_MAX)
+		// The musl alternative standard library on Linux
+		// return -1 as specified by POSIX if there are no
+		// hard limit on _SC_GETPW_R_SIZE_MAX.
+		if bufSize == -1 {
+			bufSize = 1024
+		}
 		if bufSize <= 0 || bufSize > 1<<20 {
 			return nil, fmt.Errorf("user: unreasonable _SC_GETPW_R_SIZE_MAX of %d", bufSize)
 		}
