lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 19 Jan 2009 12:01:53 +0100
From:	Sam Ravnborg <sam@...nborg.org>
To:	Avi Kivity <avi@...hat.com>
Cc:	Ingo Molnar <mingo@...e.hu>,
	Jaswinder Singh Rajput <jaswinder@...nel.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	x86 maintainers <x86@...nel.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: [GIT PULL -tip v3] fix 39 'make headers_check' warnings

> 
> It does.  This patch will break userspace.
> 
> Doesn't 'make headers_install' unifder the CONFIG_ stuff?

Nope. headers_install only unifdef __KERNEL__ stuff.

> 
> >>@@ -384,18 +386,24 @@ struct kvm_trace_rec {
> >> #define KVM_CAP_MP_STATE 14
> >> #define KVM_CAP_COALESCED_MMIO 15
> >> #define KVM_CAP_SYNC_MMU 16  /* Changes to host mmap are reflected in 
> >> guest */
> >>+#ifdef __KERNEL__
> >> #if defined(CONFIG_X86)||defined(CONFIG_IA64)
> >> #define KVM_CAP_DEVICE_ASSIGNMENT 17
> >> #endif
> >>+#endif /* __KERNEL__ */
> >> #define KVM_CAP_IOMMU 18
> >>+#ifdef __KERNEL__
> >> #if defined(CONFIG_X86)
> >> #define KVM_CAP_DEVICE_MSI 20
> >> #endif
> >>+#endif /* __KERNEL__ */
> >> /* Bug in KVM_SET_USER_MEMORY_REGION fixed: */
> >> #define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21
> >>+#ifdef __KERNEL__
> >> #if defined(CONFIG_X86)
> >> #define KVM_CAP_USER_NMI 22
> >> #endif
> >>+#endif /* __KERNEL__ */
> >>    
> >
> >likewise, are these bits really used by user-space KVM bits? If not then 
> >the whole thing could go into an #ifdef __KERNEL__ block.
> >  
> 
> They are.  This bits advertise to userspace what features kvm supports, 
> both compile- and run-time.

This is wrong...
The headers does not change with the kernel configuration and advertising the
kvm features via a .h file like this is simply plain broken.
You cannot assume that the header files are generated with the exact same config
as used by the running kernel.
And userspace has in no way access to the CONFIG_ namespace which is purely kernel-internal.

I cannot see how you have ever seen kcm advertise that for example KVM_CAP_USER_NMI
equals to 22 because CONFIG_X86 is never (supposed to be) defined in userspace -
except if you did so yourself by some means.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ