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-next>] [day] [month] [year] [list]
Message-ID: <45DA1154.9020601@zytor.com>
Date:	Mon, 19 Feb 2007 13:06:28 -0800
From:	"H. Peter Anvin" <hpa@...or.com>
To:	linux-kernel <linux-kernel@...r.kernel.org>,
	Mike Frysinger <vapier.adi@...il.com>
CC:	"David S. Miller" <davem@...emloft.net>
Subject: <linux/socket.h>, <linux/stat.h> breakage: AF_* constants are part
 of ABI definition

In the current git tree, commit 57a87bb0720a5cf7a9ece49a8c8ed288398fd1bb 
removes any way to automatically extracting a whole lot of ABI constants 
from the kernel headers, especially AF_* and the various S_* constants.

Furthermore, the patch breaks <linux/in.h> which uses sa_family_t, which 
is now defined under __KERNEL__.

The comment that is included:

     [PATCH] scrub non-__GLIBC__ checks in linux/socket.h and
  	     linux/stat.h

     Userspace should be worrying about userspace, so having the socket.h
     and stat.h pollute the namespace in the non-glibc case is wrong and
     pretty much prevents any other libc from utilizing these headers
     sanely unless they set up the __GLIBC__ define themselves (which
     sucks)

... seems to imply that virtually nothing out of these files should be 
"sanely" utilized, but why, pray tell, include them at all?  The balance 
of these files is about 10 lines.

This patch breaks klibc in ways that are painfully hard to fix, and 
*definitely* cannot be fixed by anything less than replication of all 
these definitions, which is exactly the Wrong Thing[TM].

A much better solution (or complement) would be something like:

#if defined(__KERNEL__) || defined(__KHDR_CONSTANTS)

We could have __KHDR_CONSTANTS for the AF_* constants and __KHDR_MACROS 
for the various macros (cmsg et al).  That way the userspace library can 
ask for what it wants.

	-hpa

-
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