Accepting request 223958 from Base:System
- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623) - pldd-wait-ptrace-stop.patch: Update from upstream (forwarded request 223957 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/223958 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=167
This commit is contained in:
parent
7affcde13a
commit
04bb8ac841
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de
|
||||
|
||||
- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623)
|
||||
- pldd-wait-ptrace-stop.patch: Update from upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de
|
||||
|
||||
- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499)
|
||||
- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de
|
||||
|
||||
@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de
|
||||
* Change powerpc64le start ABI to 2.17
|
||||
- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms
|
||||
- Enable profile build for aarch64
|
||||
- ppc64le-abilist.patch: Removed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com
|
||||
|
@ -50,7 +50,7 @@ BuildRequires: gd-devel
|
||||
%endif
|
||||
|
||||
%define __filter_GLIBC_PRIVATE 1
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# For i686 let's only build what's different from i586, so
|
||||
# no need to build documentation
|
||||
%define build_profile 1
|
||||
@ -146,7 +146,7 @@ Provides: rtld(GNU_HASH)
|
||||
Requires: glibc = %{version}
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# We need to avoid to have only the src rpm from i686 on the media,
|
||||
# since it does not work on other architectures.
|
||||
NoSource: 0
|
||||
@ -229,12 +229,16 @@ Patch306: glibc-fix-double-loopback.diff
|
||||
###
|
||||
# Patches from upstream
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM fix memory leak in nss_dns
|
||||
Patch1000: nss-dns-memleak.patch
|
||||
# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623)
|
||||
Patch1001: sin-sign.patch
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch1002: pldd-wait-ptrace-stop.patch
|
||||
|
||||
###
|
||||
# Patches awaiting upstream approval
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch2019: pldd-wait-ptrace-stop.patch
|
||||
|
||||
# Non-glibc patches
|
||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||
@ -435,7 +439,9 @@ rm nscd/s-stamp
|
||||
%patch304 -p1
|
||||
%patch306 -p1
|
||||
|
||||
%patch2019 -p1
|
||||
%patch1000 -p1
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
|
||||
%patch3000
|
||||
|
||||
@ -802,7 +808,7 @@ cd ..
|
||||
|
||||
# Prepare obsolete/, used only on some architectures:
|
||||
export RPM_BUILD_ROOT
|
||||
%ifarch %ix86
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete
|
||||
%endif
|
||||
|
||||
@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache
|
||||
|
||||
# libNoVersion belongs only to glibc-obsolete:
|
||||
%ifarch %ix86
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
%else
|
||||
rm -f %{buildroot}/%{_lib}/libNoVersion*
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Don't look at ldd! We don't wish a /bin/sh requires
|
||||
@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd
|
||||
rm -f %{buildroot}%{_mandir}/man1/mtrace.*
|
||||
rm -rf %{buildroot}%{_libdir}/audit
|
||||
|
||||
%ifarch i686
|
||||
# Remove files from glibc-{extra,info,i18ndata} and nscd
|
||||
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
|
||||
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
|
||||
rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd*
|
||||
rm -rf %{buildroot}/usr/lib/systemd
|
||||
rm -rf %{buildroot}/usr/lib/tmpfiles.d
|
||||
rm -rf %{buildroot}/var/run/nscd
|
||||
%endif # i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
%if %{utils_build}
|
||||
@ -1134,8 +1154,7 @@ exit 0
|
||||
%{_sbindir}/glibc_post_upgrade
|
||||
%{_sbindir}/iconvconfig
|
||||
|
||||
%ifarch %ix86
|
||||
|
||||
%ifarch i586
|
||||
%files obsolete
|
||||
%defattr (755,root,root,755)
|
||||
%dir /%{_lib}/obsolete/
|
||||
@ -1192,6 +1211,7 @@ exit 0
|
||||
%{_libdir}/librt.a
|
||||
%{_libdir}/libutil.a
|
||||
|
||||
%ifnarch i686
|
||||
%files info
|
||||
%defattr(-,root,root)
|
||||
%doc %{_infodir}/libc.info.gz
|
||||
@ -1222,6 +1242,7 @@ exit 0
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
|
||||
%endif # !i686
|
||||
|
||||
%if %{build_profile}
|
||||
%files profile
|
||||
@ -1241,10 +1262,12 @@ exit 0
|
||||
%{_libdir}/libdl_p.a
|
||||
%endif
|
||||
|
||||
%ifnarch i686
|
||||
%files extra
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/makedb
|
||||
/var/lib/misc/Makefile
|
||||
%endif # !i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
|
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de
|
||||
|
||||
- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623)
|
||||
- pldd-wait-ptrace-stop.patch: Update from upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de
|
||||
|
||||
- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499)
|
||||
- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de
|
||||
|
||||
@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de
|
||||
* Change powerpc64le start ABI to 2.17
|
||||
- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms
|
||||
- Enable profile build for aarch64
|
||||
- ppc64le-abilist.patch: Removed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com
|
||||
|
@ -49,7 +49,7 @@ BuildRequires: gd-devel
|
||||
%endif
|
||||
|
||||
%define __filter_GLIBC_PRIVATE 1
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# For i686 let's only build what's different from i586, so
|
||||
# no need to build documentation
|
||||
%define build_profile 1
|
||||
@ -145,7 +145,7 @@ Provides: rtld(GNU_HASH)
|
||||
Requires: glibc = %{version}
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# We need to avoid to have only the src rpm from i686 on the media,
|
||||
# since it does not work on other architectures.
|
||||
NoSource: 0
|
||||
@ -228,12 +228,16 @@ Patch306: glibc-fix-double-loopback.diff
|
||||
###
|
||||
# Patches from upstream
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM fix memory leak in nss_dns
|
||||
Patch1000: nss-dns-memleak.patch
|
||||
# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623)
|
||||
Patch1001: sin-sign.patch
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch1002: pldd-wait-ptrace-stop.patch
|
||||
|
||||
###
|
||||
# Patches awaiting upstream approval
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch2019: pldd-wait-ptrace-stop.patch
|
||||
|
||||
# Non-glibc patches
|
||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||
@ -435,7 +439,9 @@ rm nscd/s-stamp
|
||||
%patch304 -p1
|
||||
%patch306 -p1
|
||||
|
||||
%patch2019 -p1
|
||||
%patch1000 -p1
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
|
||||
%patch3000
|
||||
|
||||
@ -802,7 +808,7 @@ cd ..
|
||||
|
||||
# Prepare obsolete/, used only on some architectures:
|
||||
export RPM_BUILD_ROOT
|
||||
%ifarch %ix86
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete
|
||||
%endif
|
||||
|
||||
@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache
|
||||
|
||||
# libNoVersion belongs only to glibc-obsolete:
|
||||
%ifarch %ix86
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
%else
|
||||
rm -f %{buildroot}/%{_lib}/libNoVersion*
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Don't look at ldd! We don't wish a /bin/sh requires
|
||||
@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd
|
||||
rm -f %{buildroot}%{_mandir}/man1/mtrace.*
|
||||
rm -rf %{buildroot}%{_libdir}/audit
|
||||
|
||||
%ifarch i686
|
||||
# Remove files from glibc-{extra,info,i18ndata} and nscd
|
||||
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
|
||||
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
|
||||
rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd*
|
||||
rm -rf %{buildroot}/usr/lib/systemd
|
||||
rm -rf %{buildroot}/usr/lib/tmpfiles.d
|
||||
rm -rf %{buildroot}/var/run/nscd
|
||||
%endif # i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
%if %{utils_build}
|
||||
@ -1134,8 +1154,7 @@ exit 0
|
||||
%{_sbindir}/glibc_post_upgrade
|
||||
%{_sbindir}/iconvconfig
|
||||
|
||||
%ifarch %ix86
|
||||
|
||||
%ifarch i586
|
||||
%files obsolete
|
||||
%defattr (755,root,root,755)
|
||||
%dir /%{_lib}/obsolete/
|
||||
@ -1192,6 +1211,7 @@ exit 0
|
||||
%{_libdir}/librt.a
|
||||
%{_libdir}/libutil.a
|
||||
|
||||
%ifnarch i686
|
||||
%files info
|
||||
%defattr(-,root,root)
|
||||
%doc %{_infodir}/libc.info.gz
|
||||
@ -1222,6 +1242,7 @@ exit 0
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
|
||||
%endif # !i686
|
||||
|
||||
%if %{build_profile}
|
||||
%files profile
|
||||
@ -1241,10 +1262,12 @@ exit 0
|
||||
%{_libdir}/libdl_p.a
|
||||
%endif
|
||||
|
||||
%ifnarch i686
|
||||
%files extra
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/makedb
|
||||
/var/lib/misc/Makefile
|
||||
%endif # !i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
|
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 26 09:03:25 UTC 2014 - schwab@suse.de
|
||||
|
||||
- sin-sign.patch: Fix sign of input to bsloww1 (BZ #16623)
|
||||
- pldd-wait-ptrace-stop.patch: Update from upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 11:38:41 UTC 2014 - schwab@suse.de
|
||||
|
||||
- nss-dns-memleak.patch: fix memory leak in nss-dns (bnc#863499)
|
||||
- Don't build glibc-{extra,info,i18ndata,obsolete} and nscd for i686
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 14:24:29 UTC 2014 - schwab@suse.de
|
||||
|
||||
@ -20,6 +32,7 @@ Thu Feb 6 10:38:05 UTC 2014 - schwab@suse.de
|
||||
* Change powerpc64le start ABI to 2.17
|
||||
- Add /usr/local/lib64 to ld.so.conf on all lib64 platforms
|
||||
- Enable profile build for aarch64
|
||||
- ppc64le-abilist.patch: Removed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 8 12:38:29 UTC 2014 - coolo@suse.com
|
||||
|
45
glibc.spec
45
glibc.spec
@ -50,7 +50,7 @@ BuildRequires: gd-devel
|
||||
%endif
|
||||
|
||||
%define __filter_GLIBC_PRIVATE 1
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# For i686 let's only build what's different from i586, so
|
||||
# no need to build documentation
|
||||
%define build_profile 1
|
||||
@ -146,7 +146,7 @@ Provides: rtld(GNU_HASH)
|
||||
Requires: glibc = %{version}
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%if %_target_cpu == "i686"
|
||||
%ifarch i686
|
||||
# We need to avoid to have only the src rpm from i686 on the media,
|
||||
# since it does not work on other architectures.
|
||||
NoSource: 0
|
||||
@ -229,12 +229,16 @@ Patch306: glibc-fix-double-loopback.diff
|
||||
###
|
||||
# Patches from upstream
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM fix memory leak in nss_dns
|
||||
Patch1000: nss-dns-memleak.patch
|
||||
# PATCH-FIX-UPSTREAM Fix sign of input to bsloww1 (BZ #16623)
|
||||
Patch1001: sin-sign.patch
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch1002: pldd-wait-ptrace-stop.patch
|
||||
|
||||
###
|
||||
# Patches awaiting upstream approval
|
||||
###
|
||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||
Patch2019: pldd-wait-ptrace-stop.patch
|
||||
|
||||
# Non-glibc patches
|
||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||
@ -435,7 +439,9 @@ rm nscd/s-stamp
|
||||
%patch304 -p1
|
||||
%patch306 -p1
|
||||
|
||||
%patch2019 -p1
|
||||
%patch1000 -p1
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
|
||||
%patch3000
|
||||
|
||||
@ -802,7 +808,7 @@ cd ..
|
||||
|
||||
# Prepare obsolete/, used only on some architectures:
|
||||
export RPM_BUILD_ROOT
|
||||
%ifarch %ix86
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete
|
||||
%endif
|
||||
|
||||
@ -871,9 +877,13 @@ touch %{buildroot}/etc/ld.so.cache
|
||||
|
||||
# libNoVersion belongs only to glibc-obsolete:
|
||||
%ifarch %ix86
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
rm -f %{buildroot}%{_libdir}/libNoVersion*
|
||||
%ifarch i586
|
||||
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
|
||||
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
|
||||
%else
|
||||
rm -f %{buildroot}/%{_lib}/libNoVersion*
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Don't look at ldd! We don't wish a /bin/sh requires
|
||||
@ -916,6 +926,16 @@ rm -f %{buildroot}%{_bindir}/pldd
|
||||
rm -f %{buildroot}%{_mandir}/man1/mtrace.*
|
||||
rm -rf %{buildroot}%{_libdir}/audit
|
||||
|
||||
%ifarch i686
|
||||
# Remove files from glibc-{extra,info,i18ndata} and nscd
|
||||
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
|
||||
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
|
||||
rm -f %{buildroot}/etc/*nscd* %{buildroot}%{_sbindir}/*nscd*
|
||||
rm -rf %{buildroot}/usr/lib/systemd
|
||||
rm -rf %{buildroot}/usr/lib/tmpfiles.d
|
||||
rm -rf %{buildroot}/var/run/nscd
|
||||
%endif # i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
%if %{utils_build}
|
||||
@ -1134,8 +1154,7 @@ exit 0
|
||||
%{_sbindir}/glibc_post_upgrade
|
||||
%{_sbindir}/iconvconfig
|
||||
|
||||
%ifarch %ix86
|
||||
|
||||
%ifarch i586
|
||||
%files obsolete
|
||||
%defattr (755,root,root,755)
|
||||
%dir /%{_lib}/obsolete/
|
||||
@ -1192,6 +1211,7 @@ exit 0
|
||||
%{_libdir}/librt.a
|
||||
%{_libdir}/libutil.a
|
||||
|
||||
%ifnarch i686
|
||||
%files info
|
||||
%defattr(-,root,root)
|
||||
%doc %{_infodir}/libc.info.gz
|
||||
@ -1222,6 +1242,7 @@ exit 0
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
|
||||
%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
|
||||
%endif # !i686
|
||||
|
||||
%if %{build_profile}
|
||||
%files profile
|
||||
@ -1241,10 +1262,12 @@ exit 0
|
||||
%{_libdir}/libdl_p.a
|
||||
%endif
|
||||
|
||||
%ifnarch i686
|
||||
%files extra
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/makedb
|
||||
/var/lib/misc/Makefile
|
||||
%endif # !i686
|
||||
|
||||
%endif # %{normal_build}
|
||||
|
||||
|
461
nss-dns-memleak.patch
Normal file
461
nss-dns-memleak.patch
Normal file
@ -0,0 +1,461 @@
|
||||
2014-02-18 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
[BZ #16574]
|
||||
* resolv/res_send.c (send_vc): Add parameter ansp2_malloced.
|
||||
Store non-zero if the second buffer was newly allocated.
|
||||
(send_dg): Likewise.
|
||||
(__libc_res_nsend): Add parameter ansp2_malloced and pass it down
|
||||
to send_vc and send_dg.
|
||||
(res_nsend): Pass NULL for ansp2_malloced.
|
||||
* resolv/res_query.c (__libc_res_nquery): Add parameter
|
||||
answerp2_malloced and pass it down to __libc_res_nsend.
|
||||
(res_nquery): Pass additional NULL to __libc_res_nquery.
|
||||
(__libc_res_nsearch): Add parameter answerp2_malloced and pass it
|
||||
down to __libc_res_nquery and __libc_res_nquerydomain. Deallocate
|
||||
second answer buffer if answerp2_malloced was set.
|
||||
(res_nsearch): Pass additional NULL to __libc_res_nsearch.
|
||||
(__libc_res_nquerydomain): Add parameter
|
||||
answerp2_malloced and pass it down to __libc_res_nquery.
|
||||
(res_nquerydomain): Pass additional NULL to
|
||||
__libc_res_nquerydomain.
|
||||
* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Pass
|
||||
additional NULL to __libc_res_nsend and __libc_res_nquery.
|
||||
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Pass
|
||||
additional NULL to __libc_res_nsearch.
|
||||
(_nss_dns_gethostbyname4_r): Revert last change. Use new
|
||||
parameter of __libc_res_nsearch to check for separately allocated
|
||||
second buffer.
|
||||
(_nss_dns_gethostbyaddr2_r): Pass additional NULL to
|
||||
__libc_res_nquery.
|
||||
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Pass
|
||||
additional NULL to __libc_res_nquery.
|
||||
* resolv/gethnamaddr.c (gethostbyname2): Pass additional NULL to
|
||||
__libc_res_nsearch.
|
||||
(gethostbyaddr): Pass additional NULL to __libc_res_nquery.
|
||||
* include/resolv.h: Update prototypes of __libc_res_nquery,
|
||||
__libc_res_nsearch, __libc_res_nsend.
|
||||
|
||||
2014-02-13 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
[BZ #16574]
|
||||
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname4_r): Free the
|
||||
second answer buffer if it was separately allocated.
|
||||
|
||||
Index: glibc-2.19/include/resolv.h
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/include/resolv.h
|
||||
+++ glibc-2.19/include/resolv.h
|
||||
@@ -48,11 +48,11 @@ libc_hidden_proto (__res_randomid)
|
||||
libc_hidden_proto (__res_state)
|
||||
|
||||
int __libc_res_nquery (res_state, const char *, int, int, u_char *, int,
|
||||
- u_char **, u_char **, int *, int *);
|
||||
+ u_char **, u_char **, int *, int *, int *);
|
||||
int __libc_res_nsearch (res_state, const char *, int, int, u_char *, int,
|
||||
- u_char **, u_char **, int *, int *);
|
||||
+ u_char **, u_char **, int *, int *, int *);
|
||||
int __libc_res_nsend (res_state, const u_char *, int, const u_char *, int,
|
||||
- u_char *, int, u_char **, u_char **, int *, int *)
|
||||
+ u_char *, int, u_char **, u_char **, int *, int *, int *)
|
||||
attribute_hidden;
|
||||
|
||||
libresolv_hidden_proto (_sethtent)
|
||||
Index: glibc-2.19/resolv/gethnamaddr.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/gethnamaddr.c
|
||||
+++ glibc-2.19/resolv/gethnamaddr.c
|
||||
@@ -621,7 +621,7 @@ gethostbyname2(name, af)
|
||||
buf.buf = origbuf = (querybuf *) alloca (1024);
|
||||
|
||||
if ((n = __libc_res_nsearch(&_res, name, C_IN, type, buf.buf->buf, 1024,
|
||||
- &buf.ptr, NULL, NULL, NULL)) < 0) {
|
||||
+ &buf.ptr, NULL, NULL, NULL, NULL)) < 0) {
|
||||
if (buf.buf != origbuf)
|
||||
free (buf.buf);
|
||||
Dprintf("res_nsearch failed (%d)\n", n);
|
||||
@@ -716,12 +716,12 @@ gethostbyaddr(addr, len, af)
|
||||
buf.buf = orig_buf = (querybuf *) alloca (1024);
|
||||
|
||||
n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024,
|
||||
- &buf.ptr, NULL, NULL, NULL);
|
||||
+ &buf.ptr, NULL, NULL, NULL, NULL);
|
||||
if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) {
|
||||
strcpy(qp, "ip6.int");
|
||||
n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf,
|
||||
buf.buf != orig_buf ? MAXPACKET : 1024,
|
||||
- &buf.ptr, NULL, NULL, NULL);
|
||||
+ &buf.ptr, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
if (n < 0) {
|
||||
if (buf.buf != orig_buf)
|
||||
Index: glibc-2.19/resolv/nss_dns/dns-canon.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/nss_dns/dns-canon.c
|
||||
+++ glibc-2.19/resolv/nss_dns/dns-canon.c
|
||||
@@ -62,7 +62,7 @@ _nss_dns_getcanonname_r (const char *nam
|
||||
{
|
||||
int r = __libc_res_nquery (&_res, name, ns_c_in, qtypes[i],
|
||||
buf, sizeof (buf), &ansp.ptr, NULL, NULL,
|
||||
- NULL);
|
||||
+ NULL, NULL);
|
||||
if (r > 0)
|
||||
{
|
||||
/* We need to decode the response. Just one question record.
|
||||
Index: glibc-2.19/resolv/nss_dns/dns-host.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/nss_dns/dns-host.c
|
||||
+++ glibc-2.19/resolv/nss_dns/dns-host.c
|
||||
@@ -190,7 +190,7 @@ _nss_dns_gethostbyname3_r (const char *n
|
||||
host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024);
|
||||
|
||||
n = __libc_res_nsearch (&_res, name, C_IN, type, host_buffer.buf->buf,
|
||||
- 1024, &host_buffer.ptr, NULL, NULL, NULL);
|
||||
+ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL);
|
||||
if (n < 0)
|
||||
{
|
||||
switch (errno)
|
||||
@@ -225,7 +225,7 @@ _nss_dns_gethostbyname3_r (const char *n
|
||||
n = __libc_res_nsearch (&_res, name, C_IN, T_A, host_buffer.buf->buf,
|
||||
host_buffer.buf != orig_host_buffer
|
||||
? MAXPACKET : 1024, &host_buffer.ptr,
|
||||
- NULL, NULL, NULL);
|
||||
+ NULL, NULL, NULL, NULL);
|
||||
|
||||
if (n < 0)
|
||||
{
|
||||
@@ -308,12 +308,13 @@ _nss_dns_gethostbyname4_r (const char *n
|
||||
u_char *ans2p = NULL;
|
||||
int nans2p = 0;
|
||||
int resplen2 = 0;
|
||||
+ int ans2p_malloced = 0;
|
||||
|
||||
int olderr = errno;
|
||||
enum nss_status status;
|
||||
int n = __libc_res_nsearch (&_res, name, C_IN, T_UNSPEC,
|
||||
host_buffer.buf->buf, 2048, &host_buffer.ptr,
|
||||
- &ans2p, &nans2p, &resplen2);
|
||||
+ &ans2p, &nans2p, &resplen2, &ans2p_malloced);
|
||||
if (n < 0)
|
||||
{
|
||||
switch (errno)
|
||||
@@ -352,6 +353,10 @@ _nss_dns_gethostbyname4_r (const char *n
|
||||
resplen2, name, pat, buffer, buflen,
|
||||
errnop, herrnop, ttlp);
|
||||
|
||||
+ /* Check whether ans2p was separately allocated. */
|
||||
+ if (ans2p_malloced)
|
||||
+ free (ans2p);
|
||||
+
|
||||
if (host_buffer.buf != orig_host_buffer)
|
||||
free (host_buffer.buf);
|
||||
|
||||
@@ -460,7 +465,7 @@ _nss_dns_gethostbyaddr2_r (const void *a
|
||||
strcpy (qp, "].ip6.arpa");
|
||||
n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR,
|
||||
host_buffer.buf->buf, 1024, &host_buffer.ptr,
|
||||
- NULL, NULL, NULL);
|
||||
+ NULL, NULL, NULL, NULL);
|
||||
if (n >= 0)
|
||||
goto got_it_already;
|
||||
}
|
||||
@@ -481,14 +486,14 @@ _nss_dns_gethostbyaddr2_r (const void *a
|
||||
}
|
||||
|
||||
n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
|
||||
- 1024, &host_buffer.ptr, NULL, NULL, NULL);
|
||||
+ 1024, &host_buffer.ptr, NULL, NULL, NULL, NULL);
|
||||
if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0)
|
||||
{
|
||||
strcpy (qp, "ip6.int");
|
||||
n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
|
||||
host_buffer.buf != orig_host_buffer
|
||||
? MAXPACKET : 1024, &host_buffer.ptr,
|
||||
- NULL, NULL, NULL);
|
||||
+ NULL, NULL, NULL, NULL);
|
||||
}
|
||||
if (n < 0)
|
||||
{
|
||||
Index: glibc-2.19/resolv/nss_dns/dns-network.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/nss_dns/dns-network.c
|
||||
+++ glibc-2.19/resolv/nss_dns/dns-network.c
|
||||
@@ -129,7 +129,7 @@ _nss_dns_getnetbyname_r (const char *nam
|
||||
net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024);
|
||||
|
||||
anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf,
|
||||
- 1024, &net_buffer.ptr, NULL, NULL, NULL);
|
||||
+ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL);
|
||||
if (anslen < 0)
|
||||
{
|
||||
/* Nothing found. */
|
||||
@@ -205,7 +205,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i
|
||||
net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024);
|
||||
|
||||
anslen = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf,
|
||||
- 1024, &net_buffer.ptr, NULL, NULL, NULL);
|
||||
+ 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL);
|
||||
if (anslen < 0)
|
||||
{
|
||||
/* Nothing found. */
|
||||
Index: glibc-2.19/resolv/res_query.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/res_query.c
|
||||
+++ glibc-2.19/resolv/res_query.c
|
||||
@@ -98,7 +98,7 @@ static int
|
||||
__libc_res_nquerydomain(res_state statp, const char *name, const char *domain,
|
||||
int class, int type, u_char *answer, int anslen,
|
||||
u_char **answerp, u_char **answerp2, int *nanswerp2,
|
||||
- int *resplen2);
|
||||
+ int *resplen2, int *answerp2_malloced);
|
||||
|
||||
/*
|
||||
* Formulate a normal query, send, and await answer.
|
||||
@@ -119,7 +119,8 @@ __libc_res_nquery(res_state statp,
|
||||
u_char **answerp, /* if buffer needs to be enlarged */
|
||||
u_char **answerp2,
|
||||
int *nanswerp2,
|
||||
- int *resplen2)
|
||||
+ int *resplen2,
|
||||
+ int *answerp2_malloced)
|
||||
{
|
||||
HEADER *hp = (HEADER *) answer;
|
||||
HEADER *hp2;
|
||||
@@ -224,7 +225,8 @@ __libc_res_nquery(res_state statp,
|
||||
}
|
||||
assert (answerp == NULL || (void *) *answerp == (void *) answer);
|
||||
n = __libc_res_nsend(statp, query1, nquery1, query2, nquery2, answer,
|
||||
- anslen, answerp, answerp2, nanswerp2, resplen2);
|
||||
+ anslen, answerp, answerp2, nanswerp2, resplen2,
|
||||
+ answerp2_malloced);
|
||||
if (use_malloc)
|
||||
free (buf);
|
||||
if (n < 0) {
|
||||
@@ -316,7 +318,7 @@ res_nquery(res_state statp,
|
||||
int anslen) /* size of answer buffer */
|
||||
{
|
||||
return __libc_res_nquery(statp, name, class, type, answer, anslen,
|
||||
- NULL, NULL, NULL, NULL);
|
||||
+ NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
libresolv_hidden_def (res_nquery)
|
||||
|
||||
@@ -335,7 +337,8 @@ __libc_res_nsearch(res_state statp,
|
||||
u_char **answerp,
|
||||
u_char **answerp2,
|
||||
int *nanswerp2,
|
||||
- int *resplen2)
|
||||
+ int *resplen2,
|
||||
+ int *answerp2_malloced)
|
||||
{
|
||||
const char *cp, * const *domain;
|
||||
HEADER *hp = (HEADER *) answer;
|
||||
@@ -360,7 +363,7 @@ __libc_res_nsearch(res_state statp,
|
||||
if (!dots && (cp = res_hostalias(statp, name, tmp, sizeof tmp))!= NULL)
|
||||
return (__libc_res_nquery(statp, cp, class, type, answer,
|
||||
anslen, answerp, answerp2,
|
||||
- nanswerp2, resplen2));
|
||||
+ nanswerp2, resplen2, answerp2_malloced));
|
||||
|
||||
#ifdef DEBUG
|
||||
if (statp->options & RES_DEBUG)
|
||||
@@ -377,7 +380,8 @@ __libc_res_nsearch(res_state statp,
|
||||
if (dots >= statp->ndots || trailing_dot) {
|
||||
ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
|
||||
answer, anslen, answerp,
|
||||
- answerp2, nanswerp2, resplen2);
|
||||
+ answerp2, nanswerp2, resplen2,
|
||||
+ answerp2_malloced);
|
||||
if (ret > 0 || trailing_dot)
|
||||
return (ret);
|
||||
saved_herrno = h_errno;
|
||||
@@ -386,11 +390,11 @@ __libc_res_nsearch(res_state statp,
|
||||
answer = *answerp;
|
||||
anslen = MAXPACKET;
|
||||
}
|
||||
- if (answerp2
|
||||
- && (*answerp2 < answer || *answerp2 >= answer + anslen))
|
||||
+ if (answerp2 && *answerp2_malloced)
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *answerp2_malloced = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +421,7 @@ __libc_res_nsearch(res_state statp,
|
||||
class, type,
|
||||
answer, anslen, answerp,
|
||||
answerp2, nanswerp2,
|
||||
- resplen2);
|
||||
+ resplen2, answerp2_malloced);
|
||||
if (ret > 0)
|
||||
return (ret);
|
||||
|
||||
@@ -425,12 +429,11 @@ __libc_res_nsearch(res_state statp,
|
||||
answer = *answerp;
|
||||
anslen = MAXPACKET;
|
||||
}
|
||||
- if (answerp2
|
||||
- && (*answerp2 < answer
|
||||
- || *answerp2 >= answer + anslen))
|
||||
+ if (answerp2 && *answerp2_malloced)
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *answerp2_malloced = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -486,7 +489,8 @@ __libc_res_nsearch(res_state statp,
|
||||
&& !(tried_as_is || root_on_list)) {
|
||||
ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
|
||||
answer, anslen, answerp,
|
||||
- answerp2, nanswerp2, resplen2);
|
||||
+ answerp2, nanswerp2, resplen2,
|
||||
+ answerp2_malloced);
|
||||
if (ret > 0)
|
||||
return (ret);
|
||||
}
|
||||
@@ -498,10 +502,11 @@ __libc_res_nsearch(res_state statp,
|
||||
* else send back meaningless H_ERRNO, that being the one from
|
||||
* the last DNSRCH we did.
|
||||
*/
|
||||
- if (answerp2 && (*answerp2 < answer || *answerp2 >= answer + anslen))
|
||||
+ if (answerp2 && *answerp2_malloced)
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *answerp2_malloced = 0;
|
||||
}
|
||||
if (saved_herrno != -1)
|
||||
RES_SET_H_ERRNO(statp, saved_herrno);
|
||||
@@ -521,7 +526,7 @@ res_nsearch(res_state statp,
|
||||
int anslen) /* size of answer */
|
||||
{
|
||||
return __libc_res_nsearch(statp, name, class, type, answer,
|
||||
- anslen, NULL, NULL, NULL, NULL);
|
||||
+ anslen, NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
libresolv_hidden_def (res_nsearch)
|
||||
|
||||
@@ -539,7 +544,8 @@ __libc_res_nquerydomain(res_state statp,
|
||||
u_char **answerp,
|
||||
u_char **answerp2,
|
||||
int *nanswerp2,
|
||||
- int *resplen2)
|
||||
+ int *resplen2,
|
||||
+ int *answerp2_malloced)
|
||||
{
|
||||
char nbuf[MAXDNAME];
|
||||
const char *longname = nbuf;
|
||||
@@ -581,7 +587,7 @@ __libc_res_nquerydomain(res_state statp,
|
||||
}
|
||||
return (__libc_res_nquery(statp, longname, class, type, answer,
|
||||
anslen, answerp, answerp2, nanswerp2,
|
||||
- resplen2));
|
||||
+ resplen2, answerp2_malloced));
|
||||
}
|
||||
|
||||
int
|
||||
@@ -593,7 +599,8 @@ res_nquerydomain(res_state statp,
|
||||
int anslen) /* size of answer */
|
||||
{
|
||||
return __libc_res_nquerydomain(statp, name, domain, class, type,
|
||||
- answer, anslen, NULL, NULL, NULL, NULL);
|
||||
+ answer, anslen, NULL, NULL, NULL, NULL,
|
||||
+ NULL);
|
||||
}
|
||||
libresolv_hidden_def (res_nquerydomain)
|
||||
|
||||
Index: glibc-2.19/resolv/res_send.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/resolv/res_send.c
|
||||
+++ glibc-2.19/resolv/res_send.c
|
||||
@@ -186,12 +186,12 @@ evNowTime(struct timespec *res) {
|
||||
static int send_vc(res_state, const u_char *, int,
|
||||
const u_char *, int,
|
||||
u_char **, int *, int *, int, u_char **,
|
||||
- u_char **, int *, int *);
|
||||
+ u_char **, int *, int *, int *);
|
||||
static int send_dg(res_state, const u_char *, int,
|
||||
const u_char *, int,
|
||||
u_char **, int *, int *, int,
|
||||
int *, int *, u_char **,
|
||||
- u_char **, int *, int *);
|
||||
+ u_char **, int *, int *, int *);
|
||||
#ifdef DEBUG
|
||||
static void Aerror(const res_state, FILE *, const char *, int,
|
||||
const struct sockaddr *);
|
||||
@@ -343,7 +343,7 @@ int
|
||||
__libc_res_nsend(res_state statp, const u_char *buf, int buflen,
|
||||
const u_char *buf2, int buflen2,
|
||||
u_char *ans, int anssiz, u_char **ansp, u_char **ansp2,
|
||||
- int *nansp2, int *resplen2)
|
||||
+ int *nansp2, int *resplen2, int *ansp2_malloced)
|
||||
{
|
||||
int gotsomewhere, terrno, try, v_circuit, resplen, ns, n;
|
||||
|
||||
@@ -546,7 +546,8 @@ __libc_res_nsend(res_state statp, const
|
||||
try = statp->retry;
|
||||
n = send_vc(statp, buf, buflen, buf2, buflen2,
|
||||
&ans, &anssiz, &terrno,
|
||||
- ns, ansp, ansp2, nansp2, resplen2);
|
||||
+ ns, ansp, ansp2, nansp2, resplen2,
|
||||
+ ansp2_malloced);
|
||||
if (n < 0)
|
||||
return (-1);
|
||||
if (n == 0 && (buf2 == NULL || *resplen2 == 0))
|
||||
@@ -556,7 +557,7 @@ __libc_res_nsend(res_state statp, const
|
||||
n = send_dg(statp, buf, buflen, buf2, buflen2,
|
||||
&ans, &anssiz, &terrno,
|
||||
ns, &v_circuit, &gotsomewhere, ansp,
|
||||
- ansp2, nansp2, resplen2);
|
||||
+ ansp2, nansp2, resplen2, ansp2_malloced);
|
||||
if (n < 0)
|
||||
return (-1);
|
||||
if (n == 0 && (buf2 == NULL || *resplen2 == 0))
|
||||
@@ -646,7 +647,7 @@ res_nsend(res_state statp,
|
||||
const u_char *buf, int buflen, u_char *ans, int anssiz)
|
||||
{
|
||||
return __libc_res_nsend(statp, buf, buflen, NULL, 0, ans, anssiz,
|
||||
- NULL, NULL, NULL, NULL);
|
||||
+ NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
libresolv_hidden_def (res_nsend)
|
||||
|
||||
@@ -657,7 +658,7 @@ send_vc(res_state statp,
|
||||
const u_char *buf, int buflen, const u_char *buf2, int buflen2,
|
||||
u_char **ansp, int *anssizp,
|
||||
int *terrno, int ns, u_char **anscp, u_char **ansp2, int *anssizp2,
|
||||
- int *resplen2)
|
||||
+ int *resplen2, int *ansp2_malloced)
|
||||
{
|
||||
const HEADER *hp = (HEADER *) buf;
|
||||
const HEADER *hp2 = (HEADER *) buf2;
|
||||
@@ -823,6 +824,8 @@ send_vc(res_state statp,
|
||||
}
|
||||
*thisanssizp = MAXPACKET;
|
||||
*thisansp = newp;
|
||||
+ if (thisansp == ansp2)
|
||||
+ *ansp2_malloced = 1;
|
||||
anhp = (HEADER *) newp;
|
||||
len = rlen;
|
||||
} else {
|
||||
@@ -992,7 +995,7 @@ send_dg(res_state statp,
|
||||
const u_char *buf, int buflen, const u_char *buf2, int buflen2,
|
||||
u_char **ansp, int *anssizp,
|
||||
int *terrno, int ns, int *v_circuit, int *gotsomewhere, u_char **anscp,
|
||||
- u_char **ansp2, int *anssizp2, int *resplen2)
|
||||
+ u_char **ansp2, int *anssizp2, int *resplen2, int *ansp2_malloced)
|
||||
{
|
||||
const HEADER *hp = (HEADER *) buf;
|
||||
const HEADER *hp2 = (HEADER *) buf2;
|
||||
@@ -1238,6 +1241,8 @@ send_dg(res_state statp,
|
||||
if (newp != NULL) {
|
||||
*anssizp = MAXPACKET;
|
||||
*thisansp = ans = newp;
|
||||
+ if (thisansp == ansp2)
|
||||
+ *ansp2_malloced = 1;
|
||||
}
|
||||
}
|
||||
HEADER *anhp = (HEADER *) *thisansp;
|
@ -1,12 +1,13 @@
|
||||
2013-07-31 Andreas Schwab <schwab@suse.de>
|
||||
2014-02-24 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
[BZ #15804]
|
||||
* elf/pldd.c (wait_for_ptrace_stop): New function.
|
||||
(main): Call it after attaching.
|
||||
|
||||
Index: glibc-2.17.90/elf/pldd.c
|
||||
Index: glibc-2.19/elf/pldd.c
|
||||
===================================================================
|
||||
--- glibc-2.17.90.orig/elf/pldd.c
|
||||
+++ glibc-2.17.90/elf/pldd.c
|
||||
--- glibc-2.19.orig/elf/pldd.c
|
||||
+++ glibc-2.19/elf/pldd.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/ptrace.h>
|
||||
@ -32,7 +33,7 @@ Index: glibc-2.17.90/elf/pldd.c
|
||||
struct thread_list *newp = alloca (sizeof (*newp));
|
||||
newp->tid = tid;
|
||||
newp->next = thread_list;
|
||||
@@ -194,6 +198,24 @@ main (int argc, char *argv[])
|
||||
@@ -194,6 +198,27 @@ main (int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
@ -49,7 +50,10 @@ Index: glibc-2.17.90/elf/pldd.c
|
||||
+ /* The STOP signal should not be delivered to the tracee. */
|
||||
+ if (WSTOPSIG (status) == SIGSTOP)
|
||||
+ return;
|
||||
+ ptrace (PTRACE_CONT, pid, NULL, (void *) (uintptr_t) WSTOPSIG (status));
|
||||
+ if (ptrace (PTRACE_CONT, pid, NULL,
|
||||
+ (void *) (uintptr_t) WSTOPSIG (status)))
|
||||
+ /* The only possible error is that the process died. */
|
||||
+ return;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
54
sin-sign.patch
Normal file
54
sin-sign.patch
Normal file
@ -0,0 +1,54 @@
|
||||
Index: glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c
|
||||
===================================================================
|
||||
--- glibc-2.19.orig/sysdeps/ieee754/dbl-64/s_sin.c
|
||||
+++ glibc-2.19/sysdeps/ieee754/dbl-64/s_sin.c
|
||||
@@ -447,19 +447,21 @@ __sin (double x)
|
||||
}
|
||||
else
|
||||
{
|
||||
+ double t;
|
||||
if (a > 0)
|
||||
{
|
||||
m = 1;
|
||||
+ t = a;
|
||||
db = da;
|
||||
}
|
||||
else
|
||||
{
|
||||
m = 0;
|
||||
- a = -a;
|
||||
+ t = -a;
|
||||
db = -da;
|
||||
}
|
||||
- u.x = big + a;
|
||||
- y = a - (u.x - big);
|
||||
+ u.x = big + t;
|
||||
+ y = t - (u.x - big);
|
||||
res = do_sin (u, y, db, &cor);
|
||||
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
|
||||
retval = ((res == res + cor) ? ((m) ? res : -res)
|
||||
@@ -671,19 +673,21 @@ __cos (double x)
|
||||
}
|
||||
else
|
||||
{
|
||||
+ double t;
|
||||
if (a > 0)
|
||||
{
|
||||
m = 1;
|
||||
+ t = a;
|
||||
db = da;
|
||||
}
|
||||
else
|
||||
{
|
||||
m = 0;
|
||||
- a = -a;
|
||||
+ t = -a;
|
||||
db = -da;
|
||||
}
|
||||
- u.x = big + a;
|
||||
- y = a - (u.x - big);
|
||||
+ u.x = big + t;
|
||||
+ y = t - (u.x - big);
|
||||
res = do_sin (u, y, db, &cor);
|
||||
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
|
||||
retval = ((res == res + cor) ? ((m) ? res : -res)
|
Loading…
Reference in New Issue
Block a user