~ubuntu-branches/ubuntu/precise/eglibc/precise-proposed

« back to all changes in this revision

Viewing changes to debian/patches/any/CVE-2013-4237-part2.diff

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2015-03-25 13:28:41 UTC
  • mfrom: (307.1.9 precise-security)
  • Revision ID: package-import@ubuntu.com-20150325132841-guc24tcojz7oxmer
Tags: 2.15-0ubuntu10.12
* cvs-vfprintf-multibyte.diff: Fix "memory exhausted" bug in who, by no
  longer parsing %s format arguments as multibyte strings (LP: #1109327)
* cvs-__SSE_MATH__-feraiseexcept.diff: Check for __SSE_MATH__ in x86_64
  feraiseexcept to fix backported -m32 builds of GCC 4.8 (LP: #1165387)
* cvs-canonical-name.diff: Don't incorrectly do a PTR lookup when asked
  to do a canonical lookup for a host using AI_CANONNAME (LP: #1057526)
* cvs-atomic-fastbins.diff: Fix race in free() of fastbin (LP: #1020210)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Description: fix alignment issue causing a readdir regression on sparc.
 
2
Origin: backport, https://sourceware.org/git/?p=glibc.git;h=75b4202ab03337edb37536e3d9470a48a04c9341
 
3
 
 
4
Index: eglibc-2.15/sysdeps/unix/dirstream.h
 
5
===================================================================
 
6
--- eglibc-2.15.orig/sysdeps/unix/dirstream.h   2014-07-25 13:21:06.726831895 -0400
 
7
+++ eglibc-2.15/sysdeps/unix/dirstream.h        2014-07-25 13:23:19.426831241 -0400
 
8
@@ -42,8 +42,13 @@
 
9
 
 
10
     int errcode;               /* Delayed error code.  */
 
11
 
 
12
-    /* Directory block.  */
 
13
-    char data[0] __attribute__ ((aligned (__alignof__ (void*))));
 
14
+    /* Directory block.  We must make sure that this block starts
 
15
+       at an address that is aligned adequately enough to store
 
16
+       dirent entries.  Using the alignment of "void *" is not
 
17
+       sufficient because dirents on 32-bit platforms can require
 
18
+       64-bit alignment.  We use "long double" here to be consistent
 
19
+       with what malloc uses.  */
 
20
+    char data[0] __attribute__ ((aligned (__alignof__ (long double))));
 
21
   };
 
22
 
 
23
 #define _DIR_dirfd(dirp)       ((dirp)->fd)