about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-05-23 19:43:09 +0200
committerFlorian Weimer <fweimer@redhat.com>2016-05-23 19:43:09 +0200
commit3375cfafa7961c6ae0e509c31c3b3cef9ad1f03d (patch)
tree0c2ba750f8b7e15a6b826f9767fbb533bfb4f567 /ChangeLog
parentd912d3a1198dfa9acd59cb5a07e5ed27c910cb7f (diff)
downloadglibc-3375cfafa7961c6ae0e509c31c3b3cef9ad1f03d.tar.gz
glibc-3375cfafa7961c6ae0e509c31c3b3cef9ad1f03d.tar.xz
glibc-3375cfafa7961c6ae0e509c31c3b3cef9ad1f03d.zip
Make padding in struct sockaddr_storage explicit [BZ #20111]
This avoids aliasing issues with GCC 6 in -fno-strict-aliasing
mode.  (With implicit padding, not all data is copied.)

This change makes it explicit that struct sockaddr_storage is
only 126 bytes large on m68k (unlike elsewhere, where we end up
with the requested 128 bytes).  The new test case makes sure that
this does not happen on other architectures.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog23
1 files changed, 23 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e2b3d4db0e..4455c6db7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2016-05-23  Florian Weimer  <fweimer@redhat.com>
+
+	[BZ #20111]
+	* bits/sockaddr.h (_SS_SIZE): Define.
+	* bits/socket.h (_SS_SIZE): Remove.
+	(_SS_PADSIZE): Adjust to account for all padding.
+	(struct sockaddr_storage): Update comment.  Avoid implicit
+	padding.
+	* sysdeps/mach/hurd/bits/socket.h (_SS_SIZE): Remove.
+	(_SS_PADSIZE): Adjust to account for all padding.
+	(struct sockaddr_storage): Update comment.  Avoid implicit
+	padding.
+	* sysdeps/unix/bsd/bits/sockaddr.h (_SS_SIZE): Define.
+	* sysdeps/unix/sysv/linux/bits/socket.h (_SS_SIZE): Remove.
+	(_SS_PADSIZE): Adjust to account for all padding.
+	(struct sockaddr_storage): Update comment.  Avoid implicit
+	padding.
+	* sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h: New file.
+	__SS_SIZE is 126 in this version.
+	* inet/tst-sockaddr.c: New file.
+	* inet/Makefile (tests): Add tst-sockaddr.c
+	(tst-sockaddr.c): Compile with non-strict aliasing.
+
 2016-05-23  Joseph Myers  <joseph@codesourcery.com>
 
 	* conform/data/limits.h-data (CHARCLASS_NAME_MAX): Also expect for