aboutsummaryrefslogtreecommitdiffstats
path: root/main/go/default-sc-getpw-r-size-max.patch
blob: f242b5a3cc97a10104fb2ef44422f4666b73e094 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--- 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)
 		}