~ubuntu-branches/ubuntu/trusty/eglibc/trusty-security

« back to all changes in this revision

Viewing changes to .pc/any/CVE-2014-9761-1.diff/sysdeps/ieee754/ldbl-128ibm/strtold_l.c

  • Committer: Package Import Robot
  • Author(s): Steve Beattie
  • Date: 2016-04-08 23:26:02 UTC
  • Revision ID: package-import@ubuntu.com-20160408232602-694337pzn1m5xgc3
Tags: 2.19-0ubuntu6.8
* SECURITY UPDATE: buffer overflow in gethostbyname_r and related
  functions
  - debian/patches/any/CVE-2015-1781.diff: take alignment padding
    into account when computing if buffer is too small.
  - CVE-2015-1781
* SECURITY UPDATE: glibc Name Service Switch (NSS) denial of sevice
  - debian/patches/any/CVE-2014-8121-1.diff: do not close NSS files
    database during iteration.
  - debian/patches/any/CVE-2014-8121-2.diff: Separate internal state
    between getXXent and getXXbyYY NSS calls.
  - CVE-2014-8121
* SECURITY UPDATE: glibc unbounded stack usage in NaN strtod
  conversion
  - debian/patches/any/CVE-2014-9761-1.diff: Refactor strtod parsing
    of NaN payloads.
  - debian/patches/any/CVE-2014-9761-1.diff:  Fix nan functions
    handling of payload strings
  - CVE-2014-9761
* SECURITY UPDATE: NSS files long line buffer overflow
  - debian/patches/any/CVE-2015-5277.diff: Don't ignore too long
    lines in nss_files
  - CVE-2015-5277
* SECURITY UPDATE: out of range data to strftime() causes segfault
  (denial of service)
  - debian/patches/any/CVE-2015-8776.diff: add range checks to
    strftime() processing
  - CVE-2015-8776
* SECURITY UPDATE: glibc honors LD_POINTER_GUARD env for setuid
  AT_SECURE programs (e.g. setuid), allowing disabling of pointer
  mangling
  - debian/patches/any/CVE-2015-8777.diff: Always enable pointer
    guard
  - CVE-2015-8777
* SECURITY UPDATE: integer overflow in hcreate and hcreate_r
  - debian/patches/any/CVE-2015-8778.diff: check for large inputs
  - CVE-2015-8778
* SECURITY UPDATE: unbounded stack allocation in catopen()
  - debian/patches/any/CVE-2015-8779.diff: stop using unbounded
    alloca()
  - CVE-2015-8779
* SECURITY UPDATE: Stack overflow in _nss_dns_getnetbyname_r
  - debian/patches/any/CVE-2016-3075.diff: do not make unneeded
    memory copy on the stack.
  - CVE-2016-3075
* SECURITY UPDATE: pt_chown privilege escalation
  - debian/patches/any/CVE-2016-2856.diff: grantpt: trust the kernel
    about pty group and permission mode
  - debian/sysdeps/linux.mk: don't build pt_chown
  - debian/rules.d/debhelper.mk: only install pt_chown when built.
  - CVE-2016-2856, CVE-2013-2207
* debian/debhelper.in/libc.postinst: add reboot notifications for
  security updates (LP: #1546457)
* debian/patches/ubuntu/submitted-no-stack-backtrace.diff: update
  patch to eliminate compiler warning.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 1999-2014 Free Software Foundation, Inc.
 
2
   This file is part of the GNU C Library.
 
3
 
 
4
   The GNU C Library is free software; you can redistribute it and/or
 
5
   modify it under the terms of the GNU Lesser General Public
 
6
   License as published by the Free Software Foundation; either
 
7
   version 2.1 of the License, or (at your option) any later version.
 
8
 
 
9
   The GNU C Library is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
12
   Lesser General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU Lesser General Public
 
15
   License along with the GNU C Library; if not, see
 
16
   <http://www.gnu.org/licenses/>.  */
 
17
 
 
18
#include <math.h>
 
19
#include <stdlib.h>
 
20
#include <wchar.h>
 
21
#include <xlocale.h>
 
22
 
 
23
/* The actual implementation for all floating point sizes is in strtod.c.
 
24
   These macros tell it to produce the `long double' version, `strtold'.  */
 
25
 
 
26
#define FLOAT           long double
 
27
#define FLT             LDBL
 
28
#ifdef USE_WIDE_CHAR
 
29
extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t);
 
30
# define STRTOF         __new_wcstold_l
 
31
# define __STRTOF       ____new_wcstold_l
 
32
# define ____STRTOF_INTERNAL ____wcstold_l_internal
 
33
#else
 
34
extern long double ____new_strtold_l (const char *, char **, __locale_t);
 
35
# define STRTOF         __new_strtold_l
 
36
# define __STRTOF       ____new_strtold_l
 
37
# define ____STRTOF_INTERNAL ____strtold_l_internal
 
38
#endif
 
39
extern __typeof (__STRTOF) STRTOF;
 
40
libc_hidden_proto (__STRTOF)
 
41
libc_hidden_proto (STRTOF)
 
42
#define MPN2FLOAT       __mpn_construct_long_double
 
43
#define FLOAT_HUGE_VAL  HUGE_VALL
 
44
# define SET_MANTISSA(flt, mant) \
 
45
  do { union ibm_extended_long_double u;                                      \
 
46
       u.ld = (flt);                                                          \
 
47
       u.d[0].ieee_nan.mantissa0 = (mant) >> 32;                              \
 
48
       u.d[0].ieee_nan.mantissa1 = (mant);                                    \
 
49
       if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0)              \
 
50
         (flt) = u.ld;                                                        \
 
51
  } while (0)
 
52
 
 
53
#include <strtod_l.c>
 
54
 
 
55
#ifdef __LONG_DOUBLE_MATH_OPTIONAL
 
56
# include <math_ldbl_opt.h>
 
57
# ifdef USE_WIDE_CHAR
 
58
weak_alias (____new_wcstold_l, ___new_wcstold_l);
 
59
long_double_symbol (libc, ___new_wcstold_l, wcstold_l);
 
60
long_double_symbol (libc, ____new_wcstold_l, __wcstold_l);
 
61
# else
 
62
weak_alias (____new_strtold_l, ___new_strtold_l);
 
63
long_double_symbol (libc, ___new_strtold_l, strtold_l);
 
64
long_double_symbol (libc, ____new_strtold_l, __strtold_l);
 
65
# endif
 
66
#endif