[2.6.34 regression] utsname.domainname not set in x86_32 processes

Previous thread: [PATCH 0/2] Fix some initramfs-related LZO decompression issues by Albin Tonnerre on Monday, April 19, 2010 - 12:03 pm. (2 messages)

Next thread: 2.6.31.6 - swapper: page allocation failure. order:3, mode:0x4020 by Georgi Chorbadzhiyski on Monday, April 19, 2010 - 12:26 pm. (1 message)
From: Andy Isaacson
Date: Monday, April 19, 2010 - 12:21 pm

2.6.34-rc4 uname(2) from a x86_32 process copies out 325 bytes rather
than the 390 bytes that 2.6.31 copied out (and that userland expects):

2.6.31.12% cat foo.c
main()
{
	char buf[1000];
	memset(buf, 'x', sizeof(buf));
	uname(buf);
	write(1, buf, sizeof(buf));
	return 0;
}
2.6.31.12% i686-linux-gcc foo.c
2.6.31.12% ./a.out | hd
00000000  4c 69 6e 75 78 00 00 00  00 00 00 00 00 00 00 00  |Linux...........|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000040  00 63 76 70 65 34 33 30  30 00 00 00 00 00 00 00  |.cvpe4300.......|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000080  00 00 32 2e 36 2e 33 31  2e 31 32 2d 63 76 70 32  |..2.6.31.12-cvp2|
00000090  30 31 30 30 33 32 39 2d  30 30 31 34 38 2d 67 39  |0100329-00148-g9|
000000a0  61 38 62 36 36 61 00 00  00 00 00 00 00 00 00 00  |a8b66a..........|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 23 36 20 53 4d  50 20 54 75 65 20 41 70  |...#6 SMP Tue Ap|
000000d0  72 20 36 20 31 36 3a 30  33 3a 33 31 20 50 44 54  |r 6 16:03:31 PDT|
000000e0  20 32 30 31 30 00 00 00  00 00 00 00 00 00 00 00  | 2010...........|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 78 38 36 5f  36 34 00 00 00 00 00 00  |....x86_64......|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000140  00 00 00 00 00 28 6e 6f  6e 65 29 00 00 00 00 00  |.....(none).....|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000180  00 00 00 00 00 00 78 78  78 78 78 78 78 78 78 78  |......xxxxxxxxxx|
00000190  78 78 78 78 78 78 78 78  78 78 78 78 78 78 78 78  |xxxxxxxxxxxxxxxx|
*
000003e0  78 78 78 78 78 78 78 78                           |xxxxxxxx|
000003e8

2.6.34-rc4% ./a.out | hd
00000000  4c 69 6e 75 78 00 00 00  00 00 00 00 00 00 00 00  |Linux...........|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 ...
From: Andy Isaacson
Date: Monday, April 19, 2010 - 2:46 pm

I've verified that this works correctly on 2.6.33, and opened
https://bugzilla.kernel.org/show_bug.cgi?id=15812

Note that this manifests as the following error when a x86_32 process
attempts to use libnss_nis:

YPBINDPROC_DOMAIN: Domain not bound

-andy
--

From: Christoph Hellwig
Date: Monday, April 19, 2010 - 8:22 pm

Which means we're missing exactly the domainname field in new_utsname,
which differenciates it from the old utsname structure.  Looks like we
end up calling the old uname sscall instead of the new one for some
reason. 

--

Previous thread: [PATCH 0/2] Fix some initramfs-related LZO decompression issues by Albin Tonnerre on Monday, April 19, 2010 - 12:03 pm. (2 messages)

Next thread: 2.6.31.6 - swapper: page allocation failure. order:3, mode:0x4020 by Georgi Chorbadzhiyski on Monday, April 19, 2010 - 12:26 pm. (1 message)