Hallo, DESCRIPTION: getanswer_r ends in infinite loop on certain inputs. GLIBC_VERSION: 2.11.3 Note: I am novice into glibc and don't have complete understanding of glibc with respect to dns resolution. IN DETAIL: When I execute iptables-restore on one of our Lab's system, iptables-restore started consuming 100% cpu all the time. I did strace on iptables-restore I found that most of the cpu is comsumed by NSS DNS resolver of libc as given below. 67.50% iptables-restor libnss_dns-2.11.3.so [.] getanswer_r 15.12% iptables-restor libc-2.11.3.so [.] __strcasecmp 9.02% iptables-restor libc-2.11.3.so [.] __ctype_b_loc 7.02% iptables-restor libc-2.11.3.so [.] __i686.get_pc_thunk.bx 0.77% iptables-restor libnss_dns-2.11.3.so [.] 0x00000c00 0.18% iptables-restor [kernel.kallsyms] [k] read_hpet To get more details, I attached iptables-restore to gdb with debugging symbols loaded and found that glibc takes most of the CPU, since it ends in endless loop. when, 1. have_answer is set 2. net_i is set to BYNAME 3. result->n_aliases is set to ns5.dsredirections.com ( i,e in the code ap is set to ns5.dsredirections.com ) With this input, I found that the loop never exists and continue to process the same input again and again. Basically as per the code comment, the loop functionality is to : /* Check each alias name for being of the forms: 4.3.2.1.in-addr.arpa = net 1.2.3.4 3.2.1.in-addr.arpa = net 0.1.2.3 2.1.in-addr.arpa = net 0.0.1.2 1.in-addr.arpa = net 0.0.0.1 */ But then the question is : 1. Is this is a valid input or not to getanswer_r. on the other hand, when the input is of bad form like ns5.dsredirections.com, code has to detect and come out of loop. FINDINGS and SOLUTION: I found that the most recent Upstream code does not have this fixed as this part of the code is stable since 2002. ** I tried to patch glibc as given below. ( Not sure if its correct and does not break other scenarios ) avoid infinite loop for invalid entry. getaddr_r gets into infinite loop for invalid entries like ns5.dsredirections.com then it never detects and breaks from infinite loop. This patch detects the entries with non digit and non hexadecimal digits and returns. diff --git a/glibc/glibc-2.11.3-getaddr.diff b/glibc/glibc-2.11.3-getaddr.diff new file mode 100644 index 0000000..664b033 --- /dev/null +++ b/glibc/glibc-2.11.3-getaddr.diff @@ -0,0 +1,42 @@ +Index: glibc-2.11.3/resolv/nss_dns/dns-network.c +=================================================================== +--- glibc-2.11.3.orig/resolv/nss_dns/dns-network.c ++++ glibc-2.11.3/resolv/nss_dns/dns-network.c +@@ -414,6 +414,7 @@ getanswer_r (const querybuf *answer, int + uint32_t val = 0; /* Accumulator for n_net value. */ + unsigned int shift = 0; /* Which part we are parsing now. */ + const char *p = *ap; /* Consuming the string. */ ++ unsigned int invalid = 0; + do + { + /* Match the leading 0 or 0[xX] base indicator. */ +@@ -440,12 +441,23 @@ getanswer_r (const querybuf *answer, int + part = (part * base) + (*p - '0'); + else if (base == 16 && isxdigit (*p)) + part = (part << 4) + 10 + (tolower (*p) - 'a'); ++ ++ /* when neither digit nor hexadigit, then its a invalid */ ++ if ( !isdigit(*p) && !isxdigit(*p) && *p != '.') ++ { ++ invalid = 1; ++ } ++ + ++p; + } while (*p != '\0' && *p != '.'); + ++ if( invalid ) ++ return NSS_STATUS_NOTFOUND; ++ + if (*p != '.') + break; /* Bad form. Give up on this name. */ + ++ + /* Install this as the next more significant byte. */ + val |= part << shift; + shift += 8; +@@ -470,4 +482,4 @@ getanswer_r (const querybuf *answer, int + + __set_h_errno (TRY_AGAIN); + return NSS_STATUS_TRYAGAIN; +-} ++} After the patched glibc is installed, iptables-restore does not run infinitely and everything is normal. Could you please let me know, whether this will be fixed moving further. I would like to extend my help with any information if needed. Best, Yash
What is the name that is passed to getnetbyname?
This is the backtrace of the process when attached to gdb. it gives more information than requested. #0 0x55751497 in getanswer_r (answer=0xffb4a260, anslen=<optimized out>, result=0x55732e90 <resbuf.9301>, buffer=0x89eec08 "\310\354\236\b", buflen=1024, errnop=0x55739688, h_errnop=0xffb4a704, net_i=BYNAME) at nss_dns/dns-network.c:440 #1 0x55751aa0 in _nss_dns_getnetbyname_r (name=0xffb4a798 "passthrough.fw-notify.net", result=0x55732e90 <resbuf.9301>, buffer=0x89eec08 "\310\354\236\b", buflen=1024, errnop=0x55739688, herrnop=0xffb4a704) at nss_dns/dns-network.c:146 #2 0x556b8993 in __getnetbyname_r (name=0xffb4a798 "passthrough.fw-notify.net", resbuf=0x55732e90 <resbuf.9301>, buffer=0x89eec08 "\310\354\236\b", buflen=1024, result=0xffb4a708, h_errnop=0xffb4a704) at ../nss/getXXbyYY_r.c:253 #3 0x556b83fe in getnetbyname (name=0xffb4a798 "passthrough.fw-notify.net") at ../nss/getXXbyYY.c:116 #4 0x55594c30 in network_to_ipaddr (name=<optimized out>) at xtables.c:1320 #5 ipparse_hostnetwork (name=0xffb4a798 "passthrough.fw-notify.net", naddrs=0xffb4a794) at xtables.c:1359 #6 0x55594ec5 in xtables_ipparse_multiple (name=0x89ee4e0 "passthrough.fw-notify.net/32", addrpp=0xffb4aa08, maskpp=0xffb4aa04, naddrs=0xffb4aa14) at xtables.c:1446 #7 0x0804fb8c in do_command4 (argc=9, argv=0x80a45e0 <newargv>, table=0x80a45e8 <newargv+8>, handle=0xffb4ab6c) at iptables.c:1705 #8 0x0804d08c in iptables_restore_main (argc=2, argv=0xffb4d864) at iptables-restore.c:440 #9 0x0804a7ca in main (argc=<error reading variable: Cannot access memory at address 0x2e>, argv=<error reading variable: Cannot access memory at address 0x32>) at xtables-multi.c:40 Best Regards, Yash
(In reply to Andreas Schwab from comment #1) > What is the name that is passed to getnetbyname? passthrough.fw-notify.net
What do you get from this command? dig ptr passthrough.fw-notify.net
(In reply to Andreas Schwab from comment #4) > What do you get from this command? > > dig ptr passthrough.fw-notify.net /home# dig ptr passthrough.fw-notify.net ; <<>> DiG 9.6-ESV-R7-P4 <<>> ptr passthrough.fw-notify.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8873 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;passthrough.fw-notify.net. IN PTR ;; AUTHORITY SECTION: fw-notify.net. 839 IN SOA b1.rpns.hosteurope.de. hostmaster.fw-notify.net. 2013043014 16384 2048 1048576 2560 ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Nov 25 04:47:05 2014 ;; MSG SIZE rcvd: 111
How did you manage to get into the loop in getanswer_r when there is no answer?
I agree that dig does not contain an answer section. But, glibc should exit when there is no answer. I hope its a bug that it still continues to process when there is no answer. I already given the code flow with the bactrace in gdb. I am ready to help with further information if required.
Since there is no answer from the name server it is impossible to reproduce.
Then, do you think it may also be related to misconfiguration ?
I can reproduce this with this small test program, and “networks: files dns” in /etc/nsswitch.conf, using the name “4.0.41.198.in-addr.arpa.”. #include <netdb.h> #include <err.h> #include <stdio.h> int main(int argc, char **argv) { struct netent *ne = getnetbyname(argv[1]); if (ne == NULL) { errx(1, "getnetbyname(%s) failed", argv[1]); } printf("n_name: %s\n", ne->n_name); if (ne->n_aliases) { printf("n_aliases:\n"); for (char **p = ne->n_aliases; *p; ++p) { printf(" %s\n", *p); } } printf("n_addrtype: %d\n", ne->n_addrtype); printf("n_net: 0x%08x\n", ne->n_net); return 0; }
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via 11e3417af6e354f1942c68a271ae51e892b2814d (commit) from ae61fc7b33d9d99d2763c16de8275227dc9748ba (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11e3417af6e354f1942c68a271ae51e892b2814d commit 11e3417af6e354f1942c68a271ae51e892b2814d Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ NEWS | 7 +++++-- resolv/nss_dns/dns-network.c | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-)
Fixed in glibc 2.21.
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.20/master has been updated via f80af76648ed97a76745fad6caa3315a79cb1c7c (commit) from a3a1f4163c4d0f9a36056c8640661a88674ae8a2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f80af76648ed97a76745fad6caa3315a79cb1c7c commit f80af76648ed97a76745fad6caa3315a79cb1c7c Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] (cherry picked from commit 11e3417af6e354f1942c68a271ae51e892b2814d) (cherry picked from commit e54db0ea6a49affac43fa305fd134f3020c41382) Conflicts: NEWS ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ NEWS | 8 ++++++-- resolv/nss_dns/dns-network.c | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.20/master has been created at 4286dfe63ed09a16328cfd7d7f6c08d8db5297b5 (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4286dfe63ed09a16328cfd7d7f6c08d8db5297b5 commit 4286dfe63ed09a16328cfd7d7f6c08d8db5297b5 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Jan 11 19:33:17 2015 -0600 powerpc: Fix POWER7/PPC64 performance regression on LE This patch fixes a performance regression on the POWER7/PPC64 memcmp porting for Little Endian. The LE code uses 'ldbrx' instruction to read the memory on byte reversed form, however ISA 2.06 just provide the indexed form which uses a register value as additional index, instead of a fixed value enconded in the instruction. And the port strategy for LE uses r0 index value and update the address value on each compare loop interation. For large compare size values, it adds 8 more instructions plus some more depending of trailing size. This patch fixes it by adding pre-calculate indexes to remove the address update on loops and tailing sizes. For large sizes it shows a considerable gain, with double performance pairing with BE. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=118c286f3e1020482e6cbafc3707efcc70114aa8 commit 118c286f3e1020482e6cbafc3707efcc70114aa8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jan 9 16:04:26 2015 -0500 powerpc: Optimized strncmp for POWER8/PPC64 This patch adds an optimized POWER8 strncmp. The implementation focus on speeding up unaligned cases follwing the ideas of power8 strcmp. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases (where sources alignment are different). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ce698f2ab31cd4aa23673ae75af48a345044a883 commit ce698f2ab31cd4aa23673ae75af48a345044a883 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Fri Jan 9 11:56:35 2015 -0500 powerpc: Optimize POWER7 strcmp trailing checks This patch optimized the POWER7 trailing check by avoiding using byte read operations and instead use the doubleword already readed with bitwise operations. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5c3ef9d5b29a74d959a020ab9b0ef3a8aa2b31e2 commit 5c3ef9d5b29a74d959a020ab9b0ef3a8aa2b31e2 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jan 7 07:18:30 2015 -0500 powerpc: Optimized strcmp for POWER8/PPC64 This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=167ab637b959cfe5f7c6354bb48e871d4bd22f7f commit 167ab637b959cfe5f7c6354bb48e871d4bd22f7f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Dec 31 11:47:41 2014 -0500 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2d9a4f5291f7d94a6b713a121e10a272176d6150 commit 2d9a4f5291f7d94a6b713a121e10a272176d6150 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:39:23 2014 -0500 powerpc: Optimized strncat for POWER7/PPC64 With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9bbee93b47dd16f5c9786621634feacf2e450bb3 commit 9bbee93b47dd16f5c9786621634feacf2e450bb3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:36:34 2014 -0500 powerpc: Optimized strcat for POWER8/PPC64 With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e28541972ba35488f0a94dd55f635f70ce459816 commit e28541972ba35488f0a94dd55f635f70ce459816 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 05:59:44 2014 -0600 powerpc: Optimized st{r,p}cpy for POWER8/PPC64 This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e231e34bbff6e4a3ba137bb8610234ebd83496c3 commit e231e34bbff6e4a3ba137bb8610234ebd83496c3 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Wed Dec 31 14:05:00 2014 -0500 powerpc: POWER7 strcpy optimization for unaligned strings This patch optimizes strcpy for ppc64/power7 for unaligned source or destination address. The source or destination address is aligned to doubleword and data is shifted based on the alignment and added with the previous loaded data to be written as a doubleword. For each load, cmpb instruction is used for faster null check. The word aligned optimization is also removed, since the new unaligned code path shows better results handling word-aligned strings. More combination of unaligned inputs is also added in benchtest to measure the improvement.The new optimization shows 2 to 80% of performance improvement for longer string though it does not show big difference on string size less than 16 due to additional checks. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8db5b2abee8383d90abbc40a52f8492c003fbfaa commit 8db5b2abee8383d90abbc40a52f8492c003fbfaa Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7fadf519dbbb5e22e6a5d80928ed6956d8875229 commit 7fadf519dbbb5e22e6a5d80928ed6956d8875229 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4539e3dd986c5c4b60890349dec6c28e18c93365 commit 4539e3dd986c5c4b60890349dec6c28e18c93365 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 16:27:56 2014 -0500 powerpc: Add powerpc64 strpbrk optimization This patch makes the POWER7 optimized strpbrk generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b6891a48131015cbe2d88ba5796c94ba13f88e8f commit b6891a48131015cbe2d88ba5796c94ba13f88e8f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 15:24:55 2014 -0500 powerpc: Add powerpc64 strcspn optimization This patch makes the POWER7 optimized strcspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5bbab2dadf543ab9e012b7573ccb0ef80c11962c commit 5bbab2dadf543ab9e012b7573ccb0ef80c11962c Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 14:24:18 2014 -0500 powerpc: Add powerpc64 strspn optimization This patch makes the POWER7 optimized strspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 machines does not changed. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b063985c1a750a1947fcf60e4606a3b0d7d0f37 commit 8b063985c1a750a1947fcf60e4606a3b0d7d0f37 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Nov 25 14:32:54 2014 -0500 powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=364c58517bdcc91c5bf1fcb57b4befff8951a51b commit 364c58517bdcc91c5bf1fcb57b4befff8951a51b Author: Anton Blanchard <anton@samba.org> Date: Tue Nov 25 07:26:12 2014 -0500 powerpc: Fix __arch_compare_and_exchange_bool_64_rel Fix a typo in the inline assembly. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=133a24ba079abf1e762bd4d85670e0bd8df660c4 commit 133a24ba079abf1e762bd4d85670e0bd8df660c4 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f8fbd413672816a429adc6b6c191ec8ea73421e8 commit f8fbd413672816a429adc6b6c191ec8ea73421e8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 5 08:01:09 2014 -0500 powerpc: Simplify encoding of POWER8 instruction https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e154589132de915ef165a1e26f89ba6997170c2b commit e154589132de915ef165a1e26f89ba6997170c2b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Nov 3 07:26:33 2014 -0500 powerpc: Fix encoding of POWER8 instruction This patch adds a binary encoding for 'mtvsrd' instruction to avoid build failures when assembler does not support POWER8. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46f58099960f7a2603c37c540d2644e392f0fdc7 commit 46f58099960f7a2603c37c540d2644e392f0fdc7 Author: Torvald Riegel <triegel@redhat.com> Date: Sat Oct 18 01:01:58 2014 +0200 powerpc: Change atomic_write_barrier to have release semantics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f892cacbdf50322bc3ee2e131c105c71b495086 commit 5f892cacbdf50322bc3ee2e131c105c71b495086 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 12:19:09 2014 -0400 PowerPC: memset optimization for POWER8/PPC64 This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 commit e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 16:54:46 2014 -0400 PowerPC: multiarch bzero cleanup for PPC64 This patch cleanups the multiarch bzero for powerpc64 by remove the multiarch objects and use instead the the memset embedded implementation presented in each multiarch optimization. The code generate is essentially the same, but the TB_TOCLESS (which is not essential). Conflicts: ChangeLog This is backport of 3b473fecdf4c52989cd915b649bb6d26c042d048. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10f5f4c8edc35b4c3912456ffee820975e20a50b commit 10f5f4c8edc35b4c3912456ffee820975e20a50b Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6f905009b29769bd27077389ce4379d5de80df2 commit e6f905009b29769bd27077389ce4379d5de80df2 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.20/master has been created at 6831ddb38379c1924bd19b3203d161a4c3ed1e2e (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6831ddb38379c1924bd19b3203d161a4c3ed1e2e commit 6831ddb38379c1924bd19b3203d161a4c3ed1e2e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Jan 11 19:33:17 2015 -0600 powerpc: Fix POWER7/PPC64 performance regression on LE This patch fixes a performance regression on the POWER7/PPC64 memcmp porting for Little Endian. The LE code uses 'ldbrx' instruction to read the memory on byte reversed form, however ISA 2.06 just provide the indexed form which uses a register value as additional index, instead of a fixed value enconded in the instruction. And the port strategy for LE uses r0 index value and update the address value on each compare loop interation. For large compare size values, it adds 8 more instructions plus some more depending of trailing size. This patch fixes it by adding pre-calculate indexes to remove the address update on loops and tailing sizes. For large sizes it shows a considerable gain, with double performance pairing with BE. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=473b6083820fd156985bf7b2cb60db9d4031b536 commit 473b6083820fd156985bf7b2cb60db9d4031b536 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jan 9 16:04:26 2015 -0500 powerpc: Optimized strncmp for POWER8/PPC64 This patch adds an optimized POWER8 strncmp. The implementation focus on speeding up unaligned cases follwing the ideas of power8 strcmp. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases (where sources alignment are different). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=299b9464d9a1a48bbcfbc1c7a99604091ec5248f commit 299b9464d9a1a48bbcfbc1c7a99604091ec5248f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Fri Jan 9 11:56:35 2015 -0500 powerpc: Optimize POWER7 strcmp trailing checks This patch optimized the POWER7 trailing check by avoiding using byte read operations and instead use the doubleword already readed with bitwise operations. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0685edc6676c7266fdc30fd0769fb88d058f04 commit 6f0685edc6676c7266fdc30fd0769fb88d058f04 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jan 7 07:18:30 2015 -0500 powerpc: Optimized strcmp for POWER8/PPC64 This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a38f68f12fd03374d599eeb0b6943e50b0ff7348 commit a38f68f12fd03374d599eeb0b6943e50b0ff7348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Dec 31 11:47:41 2014 -0500 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4242356131256e54ca3e96b0c6f2af773b7a69c8 commit 4242356131256e54ca3e96b0c6f2af773b7a69c8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:39:23 2014 -0500 powerpc: Optimized strncat for POWER7/PPC64 With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11ce06e589429143595a6c4b60ac7ab6372201b1 commit 11ce06e589429143595a6c4b60ac7ab6372201b1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:36:34 2014 -0500 powerpc: Optimized strcat for POWER8/PPC64 With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a9728856f02f74b60a546499c5bd8492d1726f98 commit a9728856f02f74b60a546499c5bd8492d1726f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 05:59:44 2014 -0600 powerpc: Optimized st{r,p}cpy for POWER8/PPC64 This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b53db929e654aaf97a2a239e17a87b04c768b854 commit b53db929e654aaf97a2a239e17a87b04c768b854 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Wed Dec 31 14:05:00 2014 -0500 powerpc: POWER7 strcpy optimization for unaligned strings This patch optimizes strcpy for ppc64/power7 for unaligned source or destination address. The source or destination address is aligned to doubleword and data is shifted based on the alignment and added with the previous loaded data to be written as a doubleword. For each load, cmpb instruction is used for faster null check. The word aligned optimization is also removed, since the new unaligned code path shows better results handling word-aligned strings. More combination of unaligned inputs is also added in benchtest to measure the improvement.The new optimization shows 2 to 80% of performance improvement for longer string though it does not show big difference on string size less than 16 due to additional checks. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4f9fb08d49740d9f18918bcf9d45ca594f416ee commit f4f9fb08d49740d9f18918bcf9d45ca594f416ee Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5985c6ea868db23380977a35a2167549f9a3653b commit 5985c6ea868db23380977a35a2167549f9a3653b Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8647419a62d1d5641488ca6430bb679cf1e766e0 commit 8647419a62d1d5641488ca6430bb679cf1e766e0 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 16:27:56 2014 -0500 powerpc: Add powerpc64 strpbrk optimization This patch makes the POWER7 optimized strpbrk generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f9f30622819b4d3685c0d448f3a3d49032472b07 commit f9f30622819b4d3685c0d448f3a3d49032472b07 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 15:24:55 2014 -0500 powerpc: Add powerpc64 strcspn optimization This patch makes the POWER7 optimized strcspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97104a4e2b866aae6a6593286b6c584339ef29d3 commit 97104a4e2b866aae6a6593286b6c584339ef29d3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 14:24:18 2014 -0500 powerpc: Add powerpc64 strspn optimization This patch makes the POWER7 optimized strspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 machines does not changed. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3e53c8246952898cd1fd23dfa0657b03db0e36b commit d3e53c8246952898cd1fd23dfa0657b03db0e36b Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Dec 1 09:03:58 2014 -0500 powerpc: strtok{_r} optimization for powerpc64 This patch optimizes strtok and strtok_r for POWERPC64. A table of 256 characters is created and marked based on the 'accept' argument and used to check for any occurance on the input string.Loop unrolling is also used to gain improvements. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b063985c1a750a1947fcf60e4606a3b0d7d0f37 commit 8b063985c1a750a1947fcf60e4606a3b0d7d0f37 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Nov 25 14:32:54 2014 -0500 powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=364c58517bdcc91c5bf1fcb57b4befff8951a51b commit 364c58517bdcc91c5bf1fcb57b4befff8951a51b Author: Anton Blanchard <anton@samba.org> Date: Tue Nov 25 07:26:12 2014 -0500 powerpc: Fix __arch_compare_and_exchange_bool_64_rel Fix a typo in the inline assembly. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=133a24ba079abf1e762bd4d85670e0bd8df660c4 commit 133a24ba079abf1e762bd4d85670e0bd8df660c4 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f8fbd413672816a429adc6b6c191ec8ea73421e8 commit f8fbd413672816a429adc6b6c191ec8ea73421e8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 5 08:01:09 2014 -0500 powerpc: Simplify encoding of POWER8 instruction https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e154589132de915ef165a1e26f89ba6997170c2b commit e154589132de915ef165a1e26f89ba6997170c2b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Nov 3 07:26:33 2014 -0500 powerpc: Fix encoding of POWER8 instruction This patch adds a binary encoding for 'mtvsrd' instruction to avoid build failures when assembler does not support POWER8. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46f58099960f7a2603c37c540d2644e392f0fdc7 commit 46f58099960f7a2603c37c540d2644e392f0fdc7 Author: Torvald Riegel <triegel@redhat.com> Date: Sat Oct 18 01:01:58 2014 +0200 powerpc: Change atomic_write_barrier to have release semantics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f892cacbdf50322bc3ee2e131c105c71b495086 commit 5f892cacbdf50322bc3ee2e131c105c71b495086 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 12:19:09 2014 -0400 PowerPC: memset optimization for POWER8/PPC64 This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 commit e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 16:54:46 2014 -0400 PowerPC: multiarch bzero cleanup for PPC64 This patch cleanups the multiarch bzero for powerpc64 by remove the multiarch objects and use instead the the memset embedded implementation presented in each multiarch optimization. The code generate is essentially the same, but the TB_TOCLESS (which is not essential). Conflicts: ChangeLog This is backport of 3b473fecdf4c52989cd915b649bb6d26c042d048. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10f5f4c8edc35b4c3912456ffee820975e20a50b commit 10f5f4c8edc35b4c3912456ffee820975e20a50b Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6f905009b29769bd27077389ce4379d5de80df2 commit e6f905009b29769bd27077389ce4379d5de80df2 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.16/master has been created at dfc25d72984eb5a3354e104612d0ca0129af3f98 (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dfc25d72984eb5a3354e104612d0ca0129af3f98 commit dfc25d72984eb5a3354e104612d0ca0129af3f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Sep 25 13:43:04 2013 -0500 PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1442655ba419867ce1a045a97cdd7904ac1ad516 commit 1442655ba419867ce1a045a97cdd7904ac1ad516 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Jan 20 12:29:51 2014 -0600 PowerPC: Fix gettimeofday ifunc selection The IFUNC selector for gettimeofday runs before _libc_vdso_platform_setup where __vdso_gettimeofday is set. The selector then sets __gettimeofday (the internal version used within GLIBC) to use the system call version instead of the vDSO one. This patch changes the check if vDSO is available to get its value directly instead of rely on __vdso_gettimeofday. This patch changes it by getting the vDSO value directly. It fixes BZ#16431. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1bdb6daceb10307543599df3b118afd2109d2ec8 commit 1bdb6daceb10307543599df3b118afd2109d2ec8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Jan 16 06:53:18 2014 -0600 PowerPC: Fix ftime gettimeofday internal call returning bogus data This patches fixes BZ#16430 by setting a different symbol for internal GLIBC calls that points to ifunc resolvers. For PPC32, if the symbol is defined as hidden (which is the case for gettimeofday and time) the compiler will create local branches (symbol@local) and linker will not create PLT calls (required for IFUNC). This will leads to internal symbol calling the IFUNC resolver instead of the resolved symbol. For PPC64 this behavior does not occur because a call to a function in another translation unit might use a different toc pointer thus requiring a PLT call. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e3008132765936162552b15a77fe348c01074310 commit e3008132765936162552b15a77fe348c01074310 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Nov 7 05:34:22 2013 -0600 PowerPC: Fix vDSO missing ODP entries This patch fixes the vDSO symbol used directed in IFUNC resolver where they do not have an associated ODP entry leading to undefined behavior in some cases. It adds an artificial OPD static entry to such cases and set its TOC to non 0 to avoid triggering lazy resolutions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6ff69e1eb81719ee907642f615cef889d5bf8b2c commit 6ff69e1eb81719ee907642f615cef889d5bf8b2c Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3ded3d365f0237e92e8af90c878b233f265d7b4a commit 3ded3d365f0237e92e8af90c878b233f265d7b4a Author: Allan McRae <allan@archlinux.org> Date: Thu Dec 18 11:01:43 2014 +1000 Label CVE-2014-9402 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7093fd0fedd8a0b4ed5b01347e3798219ba22ec commit c7093fd0fedd8a0b4ed5b01347e3798219ba22ec Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c9b43ec3890d5c750a5127a543a55cd94aa73c94 commit c9b43ec3890d5c750a5127a543a55cd94aa73c94 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b6ac4b1093333f364698ca3bb812c80b11c2f77 commit 3b6ac4b1093333f364698ca3bb812c80b11c2f77 Author: Allan McRae <allan@archlinux.org> Date: Sat Jun 21 17:23:55 2014 +1000 Mention CVE-2014-4043 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f7865ec21e8ad32929509796497fa3b44c3ef826 commit f7865ec21e8ad32929509796497fa3b44c3ef826 Author: Florian Weimer <fweimer@redhat.com> Date: Thu Jan 15 15:16:54 2015 -0500 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7a91d241b095855e06e0bd00287968df2f6d87e commit c7a91d241b095855e06e0bd00287968df2f6d87e Author: Florian Weimer <fweimer@redhat.com> Date: Mon May 12 15:24:12 2014 +0200 _nl_find_locale: Improve handling of crafted locale names [BZ #17137] Prevent directory traversal in locale-related environment variables (CVE-2014-0475). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=588b214bc7fa3e54d6b679ed4b755e6d1310e61d commit 588b214bc7fa3e54d6b679ed4b755e6d1310e61d Author: Florian Weimer <fweimer@redhat.com> Date: Tue Aug 26 19:38:59 2014 +0200 __gconv_translit_find: Disable function [BZ #17187] This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bd51e93f9305e37aa17e08dbdb86a2e146c09eff commit bd51e93f9305e37aa17e08dbdb86a2e146c09eff Author: Florian Weimer <fweimer@redhat.com> Date: Wed Sep 3 19:45:43 2014 +0200 CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97ef0b2223e10fe3053494defd8a008d7dd9d6d8 commit 97ef0b2223e10fe3053494defd8a008d7dd9d6d8 Author: Will Newton <will.newton@linaro.org> Date: Fri Sep 13 09:26:02 2013 +0100 Add CVE-2013-4332 to NEWS. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 commit ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 12:54:29 2013 +0100 malloc: Check for integer overflow in memalign. A large bytes parameter to memalign could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15857] * malloc/malloc.c (__libc_memalign): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f1292792799a507711ce24b497e40f8fea8f9c9c commit f1292792799a507711ce24b497e40f8fea8f9c9c Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 11:59:37 2013 +0100 malloc: Check for integer overflow in valloc. A large bytes parameter to valloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15856] * malloc/malloc.c (__libc_valloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b1e934aed5170eb8948e0f3c6618c9431d6810ad commit b1e934aed5170eb8948e0f3c6618c9431d6810ad Author: Will Newton <will.newton@linaro.org> Date: Mon Aug 12 15:08:02 2013 +0100 malloc: Check for integer overflow in pvalloc. A large bytes parameter to pvalloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15855] * malloc/malloc.c (__libc_pvalloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bcd619797e785f90cc9fd67208267c26c8e4b40d commit bcd619797e785f90cc9fd67208267c26c8e4b40d Author: Florian Weimer <fweimer@redhat.com> Date: Fri Aug 16 09:38:52 2013 +0200 CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode member. * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode member. * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. Return delayed error code. Remove GETDENTS_64BIT_ALIGNED conditional. * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define GETDENTS_64BIT_ALIGNED. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * manual/filesys.texi (Reading/Closing Directory): Document ENAMETOOLONG return value of readdir_r. Recommend readdir more strongly. * manual/conf.texi (Limits for Files): Add portability note to NAME_MAX, PATH_MAX. (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6fd8e941423354e6c7a951d37a60d2f1424d568e commit 6fd8e941423354e6c7a951d37a60d2f1424d568e Author: Carlos O'Donell <carlos@redhat.com> Date: Mon Sep 23 00:52:09 2013 -0400 BZ #15754: CVE-2013-4788 The pointer guard used for pointer mangling was not initialized for static applications resulting in the security feature being disabled. The pointer guard is now correctly initialized to a random value for static applications. Existing static applications need to be recompiled to take advantage of the fix. The test tst-ptrguard1-static and tst-ptrguard1 add regression coverage to ensure the pointer guards are sufficiently random and initialized to a default value. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a243b1a0797180e142d525d1325a173c758c3714 commit a243b1a0797180e142d525d1325a173c758c3714 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:24:30 2013 +0530 Check for integer overflow in cache size computation in strcoll strcoll is implemented using a cache for indices and weights of collation sequences in the strings so that subsequent passes do not have to search through collation data again. For very large string inputs, the cache size computation could overflow. In such a case, use the fallback function that does not cache indices and weights of collation sequences. Fixes CVE-2012-4412. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c1132021659d22753104762a074d6339ae6cbd01 commit c1132021659d22753104762a074d6339ae6cbd01 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:20:02 2013 +0530 Fall back to non-cached sequence traversal and comparison on malloc fail strcoll currently falls back to alloca if malloc fails, resulting in a possible stack overflow. This patch implements sequence traversal and comparison without caching indices and rules. Fixes CVE-2012-4424. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2dc811b78adc97b5f5d951716df30053a24da1a1 commit 2dc811b78adc97b5f5d951716df30053a24da1a1 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Tue Aug 20 08:40:05 2013 +0530 Simplify strcoll implementation Break up strcoll into simpler functions so that the logic is easier to follow and maintain. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9b951f59aa3c2f2d58d398aab146951216f9ff8d commit 9b951f59aa3c2f2d58d398aab146951216f9ff8d Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Fri Oct 25 10:22:12 2013 +0530 Fix stack overflow due to large AF_INET6 requests Resolves #16072 (CVE-2013-4458). This patch fixes another stack overflow in getaddrinfo when it is called with AF_INET6. The AF_UNSPEC case was fixed as CVE-2013-1914, but the AF_INET6 case went undetected back then. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=302c61e2d3536a6ff99d518499771afd6a951b0c commit 302c61e2d3536a6ff99d518499771afd6a951b0c Author: Andreas Schwab <schwab@suse.de> Date: Tue Jan 29 14:45:15 2013 +0100 Fix buffer overrun in regexp matcher https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b7e0492e183efc24e5658c860ca5711e00524dd7 commit b7e0492e183efc24e5658c860ca5711e00524dd7 Author: Carlos O'Donell <carlos@redhat.com> Date: Fri Jul 19 02:42:03 2013 -0400 CVE-2013-2207, BZ #15755: Disable pt_chown. The helper binary pt_chown tricked into granting access to another user's pseudo-terminal. Pre-conditions for the attack: * Attacker with local user account * Kernel with FUSE support * "user_allow_other" in /etc/fuse.conf * Victim with allocated slave in /dev/pts Using the setuid installed pt_chown and a weak check on whether a file descriptor is a tty, an attacker could fake a pty check using FUSE and trick pt_chown to grant ownership of a pty descriptor that the current user does not own. It cannot access /dev/pts/ptmx however. In most modern distributions pt_chown is not needed because devpts is enabled by default. The fix for this CVE is to disable building and using pt_chown by default. We still provide a configure option to enable hte use of pt_chown but distributions do so at their own risk. Cherry-pick of e4608715e6e1dd2adc91982fd151d5ba4f761d69. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02a002fe9c0b65532643a88b01253e95ba8ba8c6 commit 02a002fe9c0b65532643a88b01253e95ba8ba8c6 Author: Jeff Law <law@redhat.com> Date: Wed Nov 28 14:12:28 2012 -0700 [BZ #14889] * sunrpc/rpc/svc.h (__svc_accept_failed): New prototype. * sunrpc/svc.c: Include time.h. (__svc_accept_failed): New function. * sunrpc/svc_tcp.c (rendezvous_request): If the accept fails for any reason other than EINTR, call __svc_accept_failed. * sunrpc/svc_udp.c (svcudp_recv): Similarly. * sunrpc/svc_unix.c (rendezvous_request): Similarly. Cherry-pick of 14bc93a967e62abf8cf2704725b6f76619399f83 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b498440aac70e994f32f45a31102964313af690 commit 3b498440aac70e994f32f45a31102964313af690 Author: Andreas Schwab <schwab@suse.de> Date: Wed Nov 28 10:24:06 2012 +0100 Properly handle indirect functions in ABI check on powerpc64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8282b7f2aa6380e8a91515f748d4693d8151fc4f commit 8282b7f2aa6380e8a91515f748d4693d8151fc4f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Apr 26 13:00:56 2013 -0500 PowerPC: modf optimization fix This patch fix the 3c0265394d9ffedff2b0de508602dc52e077ce5c commits by correctly setting minimum architecture for modf PPC optimization to power5+ instead of power5 (since only on power5+ round/ceil will be inline to inline assembly). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f commit 17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 25 16:10:06 2013 -0500 PowerPC: modf optimization This patch implements modf/modff optimization for POWER by focus on FP operations instead of relying in integer ones. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=60dc6d12c5c61b05013cb15f63349dd3d343f26d commit 60dc6d12c5c61b05013cb15f63349dd3d343f26d Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Mar 13 10:46:08 2013 -0300 PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall. Backport of d5e0b9bd6e296f3ec5263fa296d39f3fed9b8fa2. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cc328ae264f5b97d2811a95d84112bb1c6c7cae3 commit cc328ae264f5b97d2811a95d84112bb1c6c7cae3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 4 22:02:41 2013 -0300 PowerPC: gettimeofday optimization by using IFUNC https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=36016f626e72f5d1cb6107deeab29768d82ff7e3 commit 36016f626e72f5d1cb6107deeab29768d82ff7e3 Merge: 4e1f97c 043c748 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Mar 1 16:20:18 2013 -0600 Merge remote branch 'remotes/origin/release/2.16/master' into local_ibm_2.16 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4e1f97ccdcc257eba262667f7a3179a7d530330d commit 4e1f97ccdcc257eba262667f7a3179a7d530330d Author: Mike Frysinger <vapier@gentoo.org> Date: Wed Nov 28 23:04:32 2012 -0500 byteswap.h: fix gcc ver test for __builtin_bswap{32,64} The __builtin_bswap* functions were introduced in gcc-4.3, not gcc-4.2. Fix the __GNUC_PREREQ tests to reflect this. Otherwise trying to compile code with gcc-4.2 falls down: In file included from /usr/include/endian.h:60, from /usr/include/ctype.h:40, /usr/include/bits/byteswap.h: In function 'unsigned int __bswap_32(unsigned int)': /usr/include/bits/byteswap.h:46: error: '__builtin_bswap32' was not declared in this scope /usr/include/bits/byteswap.h: In function 'long long unsigned int __bswap_64(long long unsigned int)': /usr/include/bits/byteswap.h:110: error: '__builtin_bswap64' was not declared in this scope Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit c9d6789ebe028a260d3e5be0c26b7d02fdfe99fe) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=025b233a88a30f5f0474ff2c6051313eb33e5689 commit 025b233a88a30f5f0474ff2c6051313eb33e5689 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Nov 20 00:04:45 2012 +0000 Fix __bswap_64 return type in generic bits/byteswap.h. (cherry picked from commit ecd4caf9783c99fb068a100c35899a0c3a3c6d98) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2c739e2cffb65d80787cfa861f9f6c62de327ad6 commit 2c739e2cffb65d80787cfa861f9f6c62de327ad6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Oct 12 09:21:47 2012 -0700 Use __uint64_t in x86 __bswap_64 (cherry picked from commit d394eb742a3565d7fe7a4b02710a60b5f219ee64) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a24f8ac8e65b451efc81839dd653d0a0e95a23ab commit a24f8ac8e65b451efc81839dd653d0a0e95a23ab Author: Andreas Schwab <schwab@linux-m68k.org> Date: Tue May 1 17:10:10 2012 +0200 Fix missing _mcount@GLIBC_2.0 on powerpc32 (cherry picked from commit 261f485936b283f4327fc1f2fc8fd1705d805c12) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=94464655b576985fdd5f66f7f6126ee1f92a41cc commit 94464655b576985fdd5f66f7f6126ee1f92a41cc Author: Peter Bergner <bergner@vnet.ibm.com> Date: Fri Jul 6 13:24:49 2012 -0500 Add AT_PLATFORM env variable to ld.so to override auxv AT_PLATFORM. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d846920271a0f4dc54c0dbbd56998228e75e776c commit d846920271a0f4dc54c0dbbd56998228e75e776c Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Jul 6 13:03:09 2012 -0500 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.19/master has been created at 88a8a351f3a6a95205a1499fd68b79fc3d0b9d19 (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=88a8a351f3a6a95205a1499fd68b79fc3d0b9d19 commit 88a8a351f3a6a95205a1499fd68b79fc3d0b9d19 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=32404a33a03747951daafde164e3b14464c28fe9 commit 32404a33a03747951daafde164e3b14464c28fe9 Author: Allan McRae <allan@archlinux.org> Date: Thu Dec 18 11:01:43 2014 +1000 Label CVE-2014-9402 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d2a6f3a27b791d91beec2ea91f293ec898080904 commit d2a6f3a27b791d91beec2ea91f293ec898080904 Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=39700792d4224af99ab52ea26e98a0a2a2ed6ac6 commit 39700792d4224af99ab52ea26e98a0a2a2ed6ac6 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5cefe3fc8f35b50eb84cbb740268539a40651173 commit 5cefe3fc8f35b50eb84cbb740268539a40651173 Author: Allan McRae <allan@archlinux.org> Date: Sat Jun 21 17:23:55 2014 +1000 Mention CVE-2014-4043 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eece504424b59a1d8de7b4da9c64e24acaa6fbe0 commit eece504424b59a1d8de7b4da9c64e24acaa6fbe0 Author: Florian Weimer <fweimer@redhat.com> Date: Wed Jun 11 23:12:52 2014 +0200 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dcf0cce30d91100005e9aeb002096236325648fb commit dcf0cce30d91100005e9aeb002096236325648fb Author: Florian Weimer <fweimer@redhat.com> Date: Mon May 12 15:24:12 2014 +0200 _nl_find_locale: Improve handling of crafted locale names [BZ #17137] Prevent directory traversal in locale-related environment variables (CVE-2014-0475). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a5da5d74ff2e0a6ee267f283be8dbccc92cec59a commit a5da5d74ff2e0a6ee267f283be8dbccc92cec59a Author: Florian Weimer <fweimer@redhat.com> Date: Tue Aug 26 19:38:59 2014 +0200 __gconv_translit_find: Disable function [BZ #17187] This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6cbfc1fa2c64cad3c599f419dd154cec5af23cc commit e6cbfc1fa2c64cad3c599f419dd154cec5af23cc Author: Florian Weimer <fweimer@redhat.com> Date: Wed Sep 3 19:45:43 2014 +0200 CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fa7cc069f4eb29c00ec3a833d73ec4a473b11c8a commit fa7cc069f4eb29c00ec3a833d73ec4a473b11c8a Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 29 13:56:44 2014 -0500 PowerPC: Fix gprof entry point for LE This patch fixes the ELFv2 gprof entry point since the ABI does not define function descriptors. It fixes BZ#17213. This is a backport of a53fbd8e6cd2f69bdfa3431d616a5f332aea6664. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3c640c4acb9bc2c2cc7fa77d5ce1254953761dc1 commit 3c640c4acb9bc2c2cc7fa77d5ce1254953761dc1 Author: Alan Modra <amodra@gmail.com> Date: Mon Jul 14 21:14:50 2014 +0930 Correct DT_PPC64_NUM [BZ #17153] * elf/elf.h (DT_PPC64_NUM): Correct value. * NEWS: Add to fixed bug list. This is a backport of f6c44d475104e931bab2b4ffa499961088de673c. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=957afa3407c426969eaaa348981b9648d5191ae2 commit 957afa3407c426969eaaa348981b9648d5191ae2 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:54:09 2014 -0500 PowerPC: Cleanup powerpc memmove Now that MEMCPY_OK_FOR_FWD_MEMMOVE should be define on memcopy.h there is no need to specialized powerpc memmove implementation. This patch moves the define set to powerpc memcopy and cleanup its definition on powerpc code. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8d9513a103bdd202ffa4884bdedc2c3c0dbab210 commit 8d9513a103bdd202ffa4884bdedc2c3c0dbab210 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:49:54 2014 -0500 PowerPC: Fix compiler warnings This patch fixes some compiler due trailing data in #undef directives and due missing prototypes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b00ec143897f076ecbcedc7369b4b74e0c7f6d14 commit b00ec143897f076ecbcedc7369b4b74e0c7f6d14 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:35:44 2014 -0500 PowerPC: Add ifunc tests for memmove This patch add the missing ifunc tests definition for memmove ppc32 optimization patch (commit 07aedd7). This is a backport of 91f4b564bd7bedcd93e7047cad570ce292d6330b. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=565e3d6c8230affd7089bf5ebfcebbf72f32a27c commit 565e3d6c8230affd7089bf5ebfcebbf72f32a27c Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jun 25 11:54:31 2014 -0500 PowerPC: Align power7 memcpy using VSX to quadword This patch changes power7 memcpy to use VSX instructions only when memory is aligned to quardword. It is to avoid unaligned kernel traps on non-cacheable memory (for instance, memory-mapped I/O). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6fae3527af330c32399e3a4cdfac3958fc440eb8 commit 6fae3527af330c32399e3a4cdfac3958fc440eb8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jun 24 08:47:52 2014 -0500 PowerPC: optimized memmove for POWER7/PPC32 This patch adds a optimized memmove for power7 by using the optimized power7 memcpy for forward copying. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5d55f9b05ecb85b7a543f641829479cfb081f380 commit 5d55f9b05ecb85b7a543f641829479cfb081f380 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jun 20 12:55:16 2014 -0500 PowerPC: optimized memmove for POWER7/PPC64 This patch adds an optimized memmove optimization for POWER7/powerpc64. Basically the idea is to use the memcpy for POWER7 on non-overlapped memory regions and a optimized backward memcpy for memory regions that overlap (similar to the idea of string/memmove.c). The backward memcpy algorithm used is similar the one use for memcpy for POWER7, with adjustments done for alignment. The difference is memory is always aligned to 16 bytes before using VSX/altivec instructions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dde00e9914370ddd90c9bbc4f3f0e455efae4b47 commit dde00e9914370ddd90c9bbc4f3f0e455efae4b47 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jun 24 06:42:31 2014 -0500 PowerPC: memmove default implementation cleanup This patch removes the powerpc specific logic in memmove and instead include default implementation with MEMCPY_OK_FOR_FWD_MEMMOVE defined. This lead in a increase performance, since the constraints to use memcpy in powerpc code are too restrictive and memcpy can be used for any forward memmove. This is a backport of d6f68bbef4427850c2901728a1d13efc0e687297. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9841a0850ed3be4310ec6b49c3349e39a6f0f481 commit 9841a0850ed3be4310ec6b49c3349e39a6f0f481 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Wed Jun 11 22:21:20 2014 -0500 PowerPC: strcat optimization for PPC64/POWER7 This patch adds an ifunc power7 strcat symbol that uses the logic on sysdeps/powerpc/strcat.c but call power7 strlen/strcpy symbols instead of default ones. This is a backport of bc8ea38590070604006399e42469087e943fc8ec. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ded8852b37f673b8e66163b44f70504dc5af0985 commit ded8852b37f673b8e66163b44f70504dc5af0985 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Jun 23 09:38:47 2014 -0500 PowerPC: sync hwcap.h capabilities Linux commit dd58a092c4202f2bd490adab7285b3ff77f8e467 added the PPC_FEATURE2_VEC_CRYPTO auvx capability to indicate whether to hardware supports vector crypto hardware instructions. This patch adds its definition to powerpc hwcap bits. This is a backport of db22400947e1c82153e5270d23fed53fc1e3a659. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7e986751f5c05f3363c01c717972f87a681da0d0 commit 7e986751f5c05f3363c01c717972f87a681da0d0 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Tue Jun 17 08:46:25 2014 -0500 PowerPC: Fix nearbyintl failure for few inputs This patch fixes few failures in nearbyintl() where the fraction part is close to 0.5.i The new tests added report few extra failures in nearbyint_downward and nearbyint_towardzero which is a known issue. Fixes #17031. This is a backport of 754c5a08aacb44895d1ab97c553ce424eb43f761. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2289a56644fc05786e2d5637c76d47afea7d38b9 commit 2289a56644fc05786e2d5637c76d47afea7d38b9 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Fri Jun 6 07:56:07 2014 -0500 PowerPC: Optimized strcmp for PPC64/POWER7 Optimization is achieved on 8 byte aligned strings with double word comparison using cmpb instruction. On unaligned strings loop unrolling is applied for Power7 gain. It is a backport of e23d3d2690bf63207b1a47e83a94693daebbbfe5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=010c023685495f4cd907b7bf7d15375edcbe1ead commit 010c023685495f4cd907b7bf7d15375edcbe1ead Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jun 6 09:37:07 2014 -0500 PowerPC: Fix optimized strncat strlen call This patch fixes the optimized ppc64/power7 strncat strlen call for static build without ifunc enabled. The strlen symbol to call in such situation is just strlen, instead of __GI_strlen (since the __GI_ alias is just created for shared objects). It is a backport of ed36bfa18faf9be457575568e64b8409e46caa22. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0aba1acab171bd853905b66c551336aa0adcf9 commit 6f0aba1acab171bd853905b66c551336aa0adcf9 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Apr 8 17:25:14 2014 -0500 PowerPC: Fix --disable-multi-arch builds This patch fixes some powerpc32 and powerpc64 builds with --disable-multi-arch option along with different --with-cpu=powerN. It cleanups the Implies directories by removing the multiarch folder for non multiarch config and also fixing two assembly implementations: powerpc64/power7/strncat.S that is calling the wrong strlen; and power8/fpu/s_isnan.S that misses the hidden_def and weak_alias directives. It is a backport of de21c33c068c8e39afb5711613a7c083c11ce6a1. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e40df8c4677611afc48601472675593dfd087e4b commit e40df8c4677611afc48601472675593dfd087e4b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu May 22 14:48:38 2014 -0500 PowerPC: Remove 64 bits instructions in PPC32 code This patch replaces the insrdi by insrwi in powerpc32 assembly. It is a backport of d298c41635ce7f2dc7c3eccc842fe3aa754c0c8e. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a448439dfffc0878121e0941be9717e05786b1fe commit a448439dfffc0878121e0941be9717e05786b1fe Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu May 22 07:53:44 2014 -0500 PowerPC: Fix memchr ifunc hidden symbol for PPC32 This patch fixes a similar issue to 736c304a1ab4cee36a2f3343f1698bc0abae4608, where for PPC32 if the symbol is defined as hidden (memchr) then compiler will create a local branc (symbol@local) and the linker will not create a required PLT call to make the ifunc work. It changes the default hidden symbol (__GI_memchr) to default memchr symbol for powerpc32 (__memchr_ppc32). Backport of 3d2badacf185fac740a2992240a817fb2ca325af. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c725f80591aa98c5c0270feb80e857c5943c861a commit c725f80591aa98c5c0270feb80e857c5943c861a Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon May 19 17:56:55 2014 -0500 PowerPC: Fix multiarch hypotf PPC64 path This patch moves the hypotf multiarch implementation to correct path. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1db8c8c873e6112ee4ecddf1eff54f4abaab91a7 commit 1db8c8c873e6112ee4ecddf1eff54f4abaab91a7 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Mon May 5 19:10:45 2014 -0500 PowerPC: strncpy/stpncpy optimization for PPC64/POWER7 The optimization is achieved by following techniques: > data alignment [gain from aligned memory access on read/write] > POWER7 gains performance with loop unrolling/unwinding [gain by reduction of branch penalty]. > zero padding done by calling optimized memset https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=08111251bbd7275024d9c945f442f61b06d98910 commit 08111251bbd7275024d9c945f442f61b06d98910 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri May 2 12:00:36 2014 -0500 PowerPC: ifunc improvement for internal calls This patch changes de default symbol redirection for internal call of memcpy, memset, memchr, and strlen to the IFUNC resolved ones. The performance improvement is noticeable in algorithms that uses these symbols extensible, like the regex functions. This is a backport of 19c4bec0f43599eecc2f32de96ae179cd7d64053. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a8050d789589b73e7908b806d5c929facf76cc6b commit a8050d789589b73e7908b806d5c929facf76cc6b Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 16 19:33:32 2014 +0930 Correct IBM long double frexpl. Besides fixing the bugzilla, this also fixes corner-cases where the high and low double differ greatly in magnitude, and handles a denormal input without resorting to a fp rescale. [BZ #16740] [BZ #16619] * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Rewrite. * math/libm-test.inc (frexp_test_data): Add tests. Backport of aa5f0ff11ad2cc85277c64cf65c723a9664e1149 and 9860b0450275ad2b69cb9360fd01d5c122a65fc5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=154d4d95f48061d5ab890c85b6015221c1accc6e commit 154d4d95f48061d5ab890c85b6015221c1accc6e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Apr 6 14:50:11 2014 -0500 PowerPC: Fix nearbyint/nearbyintf result for FE_DOWNWARD This patch fixes the powerpc32 optimized nearbyint/nearbyintf bogus results for FE_DOWNWARD rounding mode. This is due wrong instructions sequence used in the rounding calculation (two subtractions instead of adition and a subtraction). Fixes BZ#16815. Backport of 8bd70862e11023e7f827f240a5a214f847ae982d. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e266b71770050a4d0cb276f4afea1c5b05215184 commit e266b71770050a4d0cb276f4afea1c5b05215184 Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:46:19 2014 +1030 Correct IBM long double nextafterl. Fix for values near a power of two, and some tidies. [BZ #16739] * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Correct output when value is near a power of two. Use int64_t for lx and remove casts. Use decimal rather than hex exponent constants. Don't use long double multiplication when double will suffice. * math/libm-test.inc (nextafter_test_data): Add tests. * NEWS: Add 16739 and 16786 to bug list. Backport of b0abbc21034f0e5edc49023d8fda0616173faf17. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b23fc92895aff0ce3d3134a91adaa253bffd187a commit b23fc92895aff0ce3d3134a91adaa253bffd187a Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:42:27 2014 +1030 Correct prefetch hint in power7 memrchr. Typo fix. * sysdeps/powerpc/powerpc64/power7/memrchr.S: Correct stream hint. Backport of af6b17973cbc07ac06cfb40eeab5cc2391fb489a. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=acd56f757b4e5ab8737b9564bd7a4ad1009acd8d commit acd56f757b4e5ab8737b9564bd7a4ad1009acd8d Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:40:21 2014 +1030 Fix reference to toc symbol. https://sourceware.org/ml/binutils/2014-03/msg00033.html removes the "magic" treatment of symbols defined in a .toc section. * sysdeps/powerpc/powerpc64/start.S: Add @toc to toc symbol reference. Backport of 483818d768ed99a5edf4114298a75ebedaee8d5c. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fd5100c480beef3d36c4bf74b6a23529695d036c commit fd5100c480beef3d36c4bf74b6a23529695d036c Author: Alan Modra <amodra@gmail.com> Date: Tue Apr 1 14:07:42 2014 +1030 Fix s_copysign stack temp for PowerPC64 ELFv2 [BZ #16786] * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Don't trash stack. Backport of c859b32e9d76afe8a3f20bb9528961a573c06937. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a51aafa398ed7dd2a0a846c1b2ed8a37909609eb commit a51aafa398ed7dd2a0a846c1b2ed8a37909609eb Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 31 08:07:55 2014 -0500 PowerPC: Fix little endian enconding for mfvsrd This patch fixes the MFVSRD_R3_V1 macro that encodes 'mfvsrd r3,vs1' (to support old binutils) for little endian. Backport of 757d9dd5c3efa56fac75965abc014faaae7b7895. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=62caa3eed2a154a61a01df3a5f3dde3ff400f4d4 commit 62caa3eed2a154a61a01df3a5f3dde3ff400f4d4 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Mar 20 15:28:07 2014 -0500 PowerPC: optimized strpbrk for POWER7 This patch add an optimized strpbrk for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and memory clear using VSX instructions. Backport of 6f23d0939e9651d8ac3c77a835fb6464b35a1dc4 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c0afc58657f482f4c31ccade06e7b059e761186c commit c0afc58657f482f4c31ccade06e7b059e761186c Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Mar 20 11:24:52 2014 -0500 PowerPC: optimized strcspn for PPC64/POWER7 This patch add a optimized strcspn for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and align stack memory to table to 16 bytes (so VSX clean can ran without alignment issues). Backport of 6eaf95cbfa0031ea267682dc2c9c17ed3e3dc167 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ac6d8452be2d582e4a2b14525c839c71b9351991 commit ac6d8452be2d582e4a2b14525c839c71b9351991 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:49:45 2014 -0500 PowerPC: remove wrong roundl implementation for PowerPC64 The roundl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_roundl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_roundl.c instead fixes the failing math. This fixes 16707. Backport of c7de50250367167d8c9f35594b264f6a0af8dd0c https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c5ac422010eb6b384c3b4e45ab0049172f0ad688 commit c5ac422010eb6b384c3b4e45ab0049172f0ad688 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:27:52 2014 -0500 PowerPC: remove wrong nearbyintl implementation for PPC64 The nearbyintl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c instead fixes the failing math. Fixes BZ#16706. Backport of 98fb27a373f37554232e0060eef1a5bb00a07eb0 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7986a2d12b7ea0653f0366200c703a3905edffd9 commit 7986a2d12b7ea0653f0366200c703a3905edffd9 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 07:35:43 2014 -0500 PowerPC: remove wrong ceill implementation for PowerPC64 The ceill assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_ceill.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_ceill.c instead fixes the failing math. Fixes BZ#16701. Backport of 374f7f61214967bb4e2257695aeeeecc2a77f369 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a56198dbb21767bde0003d3062d5ec7a8e1279f1 commit a56198dbb21767bde0003d3062d5ec7a8e1279f1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:15:40 2014 -0500 Add truncl tests related to BZ#16414 Backport of 4655c291d1808c35b7c54236ae62be7a3aaa0a2d https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a52b3f7e4c4de8705370adda4b390293780dc768 commit a52b3f7e4c4de8705370adda4b390293780dc768 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Mar 12 08:55:50 2014 -0500 PowerPC: Fix bzero definition for static libc for PPC32 This patch fixes an issue for powerpc32-fpu static build which fails with an 'bzero' undefined reference. This patch adds bzero ifunc selector for static builds and fixes the '__bzero_ppc' reference to default memset symbol (since static memset build does not provide ifunc selector). Fixes BZ#16689. Backport of dd3946c615184e1957a0cb09352cac72be5d6d5b. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=09e09c2872ab52c8a42b907105343520019ca1d1 commit 09e09c2872ab52c8a42b907105343520019ca1d1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Mar 11 16:17:50 2014 -0500 PowerPC: Fix strspn for static build This patch makes the strspn ifunc selector build for static builds. This is a backport of 27c7220a483bda576533aa9a0a9b42175644b1a1 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f510d35c58d16c32ce988d053c9a525b8e38fe47 commit f510d35c58d16c32ce988d053c9a525b8e38fe47 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 10 15:26:20 2014 -0500 PowerPC: Fix bzero definition for static libc for PPC64 This patch fixes an issue for powerpc64[le] static build where __bzero is definied in multiple places (memset-ppc64.o and bzero.o). It is now defined only in bzero.o and memset-ppc64.o only defined __bzero_ppc for both dynamic and static library. Fixes BZ#16683. Backport of 4facea473059914983b7da8dd654c06b8e3dcc41 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=afd75351c2f3cae4a2daf88c50faad889e3a0f2b commit afd75351c2f3cae4a2daf88c50faad889e3a0f2b Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Mon Mar 10 12:20:36 2014 -0400 PowerPC: strspn optimization for PPC64/POWER7 The optimization is achieved by following techniques: > hashing of needle. > hashing avoids scanning of duplicate entries in needle across the string. > initializing the hash table with Vector instructions (VSX) by quadword access. > unrolling when scanning for character in string across hash table. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e5829d82c88117c9f4752cedfefc8516cb9ffdf7 commit e5829d82c88117c9f4752cedfefc8516cb9ffdf7 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 7 06:09:47 2014 -0600 PowerPC: strncat optimization for PPC64 The optimization is achieved by following techniques: 1. Doubleword aligned memory access and compares using cmpb instruction. 2. Loop unrolling for byte load/store. 3. CPU pre-fetch to avoid cache miss. Backport of ba9cc0714e58a9e8fa73cf6b0e205cbf1e6b71f2 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e032058ea756e396c4ed1395a44d8b321e370b2f commit e032058ea756e396c4ed1395a44d8b321e370b2f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Mar 3 08:06:41 2014 -0600 PowerPC: strrchr optimization for POWER7/PPC64 This patch optimizes strrchr() for ppc64. It uses aligned memory access along with cmpb instruction and CPU prefetch to avoid cache misses for speed improvement. Backport of c7debbdfacbef150aaf9113eb05ccaf2b9e7af6c https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=54dd35c59cda5f59c2f3ae783468da4b94f30dff commit 54dd35c59cda5f59c2f3ae783468da4b94f30dff Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Feb 17 10:44:08 2014 -0600 PowerPC: llround/llroundf POWER8 optimization This patch add a optimized llround/llroundf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport fe13a20c37578f08ce393ccaeb45caeb48815ca5 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b34f8e9fcd1274e69a9a59a28c270e2cada39c95 commit b34f8e9fcd1274e69a9a59a28c270e2cada39c95 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Feb 18 09:29:29 2014 -0500 PowerPC: llrint/llrintf POWER8 optimization This patch add a optimized llrint/llrintf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 1ad8950a3ea4056ed343d681b5146f4b4aa27e10 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c3241bcd73c47d2bcd2a5ffe84a21d4853c8c938 commit c3241bcd73c47d2bcd2a5ffe84a21d4853c8c938 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:46:46 2014 -0600 PowerPC: Optimized finite/finitef for POWER8 This patch add a optimized finite/finitef implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of cac626d60a863e48ab75417064984769e58c5719. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1cd3b05dda2dab30cb7658193cb1af8f594f52f3 commit 1cd3b05dda2dab30cb7658193cb1af8f594f52f3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:45:41 2014 -0600 PowerPC: Optimized isinf/isinff for POWER8 This patch add a optimized isinf/isinff implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 4393fc119c34e97519b9b7a4fc94066b283be452 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=65c8daedb68b74eae860f91dca226215cd80e348 commit 65c8daedb68b74eae860f91dca226215cd80e348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:43:51 2014 -0600 PowerPC: Optimized isnan/isnanf for POWER8 This patch add a optimized isnan/isnanf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 487972aea52004f604c2878c8c9d3e77670f2c32 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=55e71ccf31c29a7839344f03e0a7437ea0f5f211 commit 55e71ccf31c29a7839344f03e0a7437ea0f5f211 Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fbed4f13980bf4ebd7df59b0e52bd2a16875f0db commit fbed4f13980bf4ebd7df59b0e52bd2a16875f0db Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.20/master has been created at 1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f commit 1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:34:52 2014 -0500 powerpc: abort transaction in syscalls Linux kernel powerpc documentation states issuing a syscall inside a transaction is not recommended and may lead to undefined behavior. It also states syscalls does not abort transactoin neither they run in transactional state. To avoid side-effects being visible outside transactions, GLIBC with lock elision enabled will issue a transaction abort instruction just before all syscalls if hardware supports hardware transactions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0f7cecb9cf4b370c3d72f67e048bb07e238cf110 commit 0f7cecb9cf4b370c3d72f67e048bb07e238cf110 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:30:56 2014 -0500 powerpc: Add adaptive elision to rwlocks This patch adds support for lock elision using ISA 2.07 hardware transactional memory for rwlocks. The logic is similar to the one presented in pthread_mutex lock elision. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d45200a803939be3316b7ddf442906d544e9d43 commit 1d45200a803939be3316b7ddf442906d544e9d43 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:25:32 2014 -0500 powerpc: Add the lock elision using HTM This patch adds support for lock elision using ISA 2.07 hardware transactional memory instructions for pthread_mutex primitives. Similar to s390 version, the for elision logic defined in 'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined. Also, the lock elision code should be able to be built even with a compiler that does not provide HTM support with builtins. However I have noted the performance is sub-optimal due scheduling pressures. Conflicts: ChangeLog NEWS sysdeps/unix/sysv/linux/powerpc/lowlevellock.h https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6831ddb38379c1924bd19b3203d161a4c3ed1e2e commit 6831ddb38379c1924bd19b3203d161a4c3ed1e2e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Jan 11 19:33:17 2015 -0600 powerpc: Fix POWER7/PPC64 performance regression on LE This patch fixes a performance regression on the POWER7/PPC64 memcmp porting for Little Endian. The LE code uses 'ldbrx' instruction to read the memory on byte reversed form, however ISA 2.06 just provide the indexed form which uses a register value as additional index, instead of a fixed value enconded in the instruction. And the port strategy for LE uses r0 index value and update the address value on each compare loop interation. For large compare size values, it adds 8 more instructions plus some more depending of trailing size. This patch fixes it by adding pre-calculate indexes to remove the address update on loops and tailing sizes. For large sizes it shows a considerable gain, with double performance pairing with BE. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=473b6083820fd156985bf7b2cb60db9d4031b536 commit 473b6083820fd156985bf7b2cb60db9d4031b536 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jan 9 16:04:26 2015 -0500 powerpc: Optimized strncmp for POWER8/PPC64 This patch adds an optimized POWER8 strncmp. The implementation focus on speeding up unaligned cases follwing the ideas of power8 strcmp. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases (where sources alignment are different). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=299b9464d9a1a48bbcfbc1c7a99604091ec5248f commit 299b9464d9a1a48bbcfbc1c7a99604091ec5248f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Fri Jan 9 11:56:35 2015 -0500 powerpc: Optimize POWER7 strcmp trailing checks This patch optimized the POWER7 trailing check by avoiding using byte read operations and instead use the doubleword already readed with bitwise operations. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0685edc6676c7266fdc30fd0769fb88d058f04 commit 6f0685edc6676c7266fdc30fd0769fb88d058f04 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jan 7 07:18:30 2015 -0500 powerpc: Optimized strcmp for POWER8/PPC64 This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a38f68f12fd03374d599eeb0b6943e50b0ff7348 commit a38f68f12fd03374d599eeb0b6943e50b0ff7348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Dec 31 11:47:41 2014 -0500 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4242356131256e54ca3e96b0c6f2af773b7a69c8 commit 4242356131256e54ca3e96b0c6f2af773b7a69c8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:39:23 2014 -0500 powerpc: Optimized strncat for POWER7/PPC64 With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11ce06e589429143595a6c4b60ac7ab6372201b1 commit 11ce06e589429143595a6c4b60ac7ab6372201b1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:36:34 2014 -0500 powerpc: Optimized strcat for POWER8/PPC64 With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a9728856f02f74b60a546499c5bd8492d1726f98 commit a9728856f02f74b60a546499c5bd8492d1726f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 05:59:44 2014 -0600 powerpc: Optimized st{r,p}cpy for POWER8/PPC64 This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b53db929e654aaf97a2a239e17a87b04c768b854 commit b53db929e654aaf97a2a239e17a87b04c768b854 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Wed Dec 31 14:05:00 2014 -0500 powerpc: POWER7 strcpy optimization for unaligned strings This patch optimizes strcpy for ppc64/power7 for unaligned source or destination address. The source or destination address is aligned to doubleword and data is shifted based on the alignment and added with the previous loaded data to be written as a doubleword. For each load, cmpb instruction is used for faster null check. The word aligned optimization is also removed, since the new unaligned code path shows better results handling word-aligned strings. More combination of unaligned inputs is also added in benchtest to measure the improvement.The new optimization shows 2 to 80% of performance improvement for longer string though it does not show big difference on string size less than 16 due to additional checks. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4f9fb08d49740d9f18918bcf9d45ca594f416ee commit f4f9fb08d49740d9f18918bcf9d45ca594f416ee Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5985c6ea868db23380977a35a2167549f9a3653b commit 5985c6ea868db23380977a35a2167549f9a3653b Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8647419a62d1d5641488ca6430bb679cf1e766e0 commit 8647419a62d1d5641488ca6430bb679cf1e766e0 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 16:27:56 2014 -0500 powerpc: Add powerpc64 strpbrk optimization This patch makes the POWER7 optimized strpbrk generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f9f30622819b4d3685c0d448f3a3d49032472b07 commit f9f30622819b4d3685c0d448f3a3d49032472b07 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 15:24:55 2014 -0500 powerpc: Add powerpc64 strcspn optimization This patch makes the POWER7 optimized strcspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97104a4e2b866aae6a6593286b6c584339ef29d3 commit 97104a4e2b866aae6a6593286b6c584339ef29d3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 14:24:18 2014 -0500 powerpc: Add powerpc64 strspn optimization This patch makes the POWER7 optimized strspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 machines does not changed. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3e53c8246952898cd1fd23dfa0657b03db0e36b commit d3e53c8246952898cd1fd23dfa0657b03db0e36b Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Dec 1 09:03:58 2014 -0500 powerpc: strtok{_r} optimization for powerpc64 This patch optimizes strtok and strtok_r for POWERPC64. A table of 256 characters is created and marked based on the 'accept' argument and used to check for any occurance on the input string.Loop unrolling is also used to gain improvements. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b063985c1a750a1947fcf60e4606a3b0d7d0f37 commit 8b063985c1a750a1947fcf60e4606a3b0d7d0f37 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Nov 25 14:32:54 2014 -0500 powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=364c58517bdcc91c5bf1fcb57b4befff8951a51b commit 364c58517bdcc91c5bf1fcb57b4befff8951a51b Author: Anton Blanchard <anton@samba.org> Date: Tue Nov 25 07:26:12 2014 -0500 powerpc: Fix __arch_compare_and_exchange_bool_64_rel Fix a typo in the inline assembly. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=133a24ba079abf1e762bd4d85670e0bd8df660c4 commit 133a24ba079abf1e762bd4d85670e0bd8df660c4 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f8fbd413672816a429adc6b6c191ec8ea73421e8 commit f8fbd413672816a429adc6b6c191ec8ea73421e8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 5 08:01:09 2014 -0500 powerpc: Simplify encoding of POWER8 instruction https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e154589132de915ef165a1e26f89ba6997170c2b commit e154589132de915ef165a1e26f89ba6997170c2b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Nov 3 07:26:33 2014 -0500 powerpc: Fix encoding of POWER8 instruction This patch adds a binary encoding for 'mtvsrd' instruction to avoid build failures when assembler does not support POWER8. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46f58099960f7a2603c37c540d2644e392f0fdc7 commit 46f58099960f7a2603c37c540d2644e392f0fdc7 Author: Torvald Riegel <triegel@redhat.com> Date: Sat Oct 18 01:01:58 2014 +0200 powerpc: Change atomic_write_barrier to have release semantics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f892cacbdf50322bc3ee2e131c105c71b495086 commit 5f892cacbdf50322bc3ee2e131c105c71b495086 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 12:19:09 2014 -0400 PowerPC: memset optimization for POWER8/PPC64 This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 commit e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 16:54:46 2014 -0400 PowerPC: multiarch bzero cleanup for PPC64 This patch cleanups the multiarch bzero for powerpc64 by remove the multiarch objects and use instead the the memset embedded implementation presented in each multiarch optimization. The code generate is essentially the same, but the TB_TOCLESS (which is not essential). Conflicts: ChangeLog This is backport of 3b473fecdf4c52989cd915b649bb6d26c042d048. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10f5f4c8edc35b4c3912456ffee820975e20a50b commit 10f5f4c8edc35b4c3912456ffee820975e20a50b Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6f905009b29769bd27077389ce4379d5de80df2 commit e6f905009b29769bd27077389ce4379d5de80df2 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.16/master has been created at ec36394743c15fedca294219f2254b180c4e327c (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ec36394743c15fedca294219f2254b180c4e327c commit ec36394743c15fedca294219f2254b180c4e327c Author: Andreas Schwab <schwab@suse.de> Date: Mon Jan 21 17:41:28 2013 +0100 Fix parsing of numeric hosts in gethostbyname_r Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20ac5d44837b82c064dfabd3646ec1f4f6826263 commit 20ac5d44837b82c064dfabd3646ec1f4f6826263 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Nov 19 13:01:43 2012 +0530 Return EAI_SYSTEM if we're out of file descriptors Resolves BZ #14719. Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dfc25d72984eb5a3354e104612d0ca0129af3f98 commit dfc25d72984eb5a3354e104612d0ca0129af3f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Sep 25 13:43:04 2013 -0500 PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1442655ba419867ce1a045a97cdd7904ac1ad516 commit 1442655ba419867ce1a045a97cdd7904ac1ad516 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Jan 20 12:29:51 2014 -0600 PowerPC: Fix gettimeofday ifunc selection The IFUNC selector for gettimeofday runs before _libc_vdso_platform_setup where __vdso_gettimeofday is set. The selector then sets __gettimeofday (the internal version used within GLIBC) to use the system call version instead of the vDSO one. This patch changes the check if vDSO is available to get its value directly instead of rely on __vdso_gettimeofday. This patch changes it by getting the vDSO value directly. It fixes BZ#16431. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1bdb6daceb10307543599df3b118afd2109d2ec8 commit 1bdb6daceb10307543599df3b118afd2109d2ec8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Jan 16 06:53:18 2014 -0600 PowerPC: Fix ftime gettimeofday internal call returning bogus data This patches fixes BZ#16430 by setting a different symbol for internal GLIBC calls that points to ifunc resolvers. For PPC32, if the symbol is defined as hidden (which is the case for gettimeofday and time) the compiler will create local branches (symbol@local) and linker will not create PLT calls (required for IFUNC). This will leads to internal symbol calling the IFUNC resolver instead of the resolved symbol. For PPC64 this behavior does not occur because a call to a function in another translation unit might use a different toc pointer thus requiring a PLT call. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e3008132765936162552b15a77fe348c01074310 commit e3008132765936162552b15a77fe348c01074310 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Nov 7 05:34:22 2013 -0600 PowerPC: Fix vDSO missing ODP entries This patch fixes the vDSO symbol used directed in IFUNC resolver where they do not have an associated ODP entry leading to undefined behavior in some cases. It adds an artificial OPD static entry to such cases and set its TOC to non 0 to avoid triggering lazy resolutions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6ff69e1eb81719ee907642f615cef889d5bf8b2c commit 6ff69e1eb81719ee907642f615cef889d5bf8b2c Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3ded3d365f0237e92e8af90c878b233f265d7b4a commit 3ded3d365f0237e92e8af90c878b233f265d7b4a Author: Allan McRae <allan@archlinux.org> Date: Thu Dec 18 11:01:43 2014 +1000 Label CVE-2014-9402 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7093fd0fedd8a0b4ed5b01347e3798219ba22ec commit c7093fd0fedd8a0b4ed5b01347e3798219ba22ec Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c9b43ec3890d5c750a5127a543a55cd94aa73c94 commit c9b43ec3890d5c750a5127a543a55cd94aa73c94 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b6ac4b1093333f364698ca3bb812c80b11c2f77 commit 3b6ac4b1093333f364698ca3bb812c80b11c2f77 Author: Allan McRae <allan@archlinux.org> Date: Sat Jun 21 17:23:55 2014 +1000 Mention CVE-2014-4043 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f7865ec21e8ad32929509796497fa3b44c3ef826 commit f7865ec21e8ad32929509796497fa3b44c3ef826 Author: Florian Weimer <fweimer@redhat.com> Date: Thu Jan 15 15:16:54 2015 -0500 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7a91d241b095855e06e0bd00287968df2f6d87e commit c7a91d241b095855e06e0bd00287968df2f6d87e Author: Florian Weimer <fweimer@redhat.com> Date: Mon May 12 15:24:12 2014 +0200 _nl_find_locale: Improve handling of crafted locale names [BZ #17137] Prevent directory traversal in locale-related environment variables (CVE-2014-0475). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=588b214bc7fa3e54d6b679ed4b755e6d1310e61d commit 588b214bc7fa3e54d6b679ed4b755e6d1310e61d Author: Florian Weimer <fweimer@redhat.com> Date: Tue Aug 26 19:38:59 2014 +0200 __gconv_translit_find: Disable function [BZ #17187] This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bd51e93f9305e37aa17e08dbdb86a2e146c09eff commit bd51e93f9305e37aa17e08dbdb86a2e146c09eff Author: Florian Weimer <fweimer@redhat.com> Date: Wed Sep 3 19:45:43 2014 +0200 CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97ef0b2223e10fe3053494defd8a008d7dd9d6d8 commit 97ef0b2223e10fe3053494defd8a008d7dd9d6d8 Author: Will Newton <will.newton@linaro.org> Date: Fri Sep 13 09:26:02 2013 +0100 Add CVE-2013-4332 to NEWS. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 commit ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 12:54:29 2013 +0100 malloc: Check for integer overflow in memalign. A large bytes parameter to memalign could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15857] * malloc/malloc.c (__libc_memalign): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f1292792799a507711ce24b497e40f8fea8f9c9c commit f1292792799a507711ce24b497e40f8fea8f9c9c Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 11:59:37 2013 +0100 malloc: Check for integer overflow in valloc. A large bytes parameter to valloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15856] * malloc/malloc.c (__libc_valloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b1e934aed5170eb8948e0f3c6618c9431d6810ad commit b1e934aed5170eb8948e0f3c6618c9431d6810ad Author: Will Newton <will.newton@linaro.org> Date: Mon Aug 12 15:08:02 2013 +0100 malloc: Check for integer overflow in pvalloc. A large bytes parameter to pvalloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15855] * malloc/malloc.c (__libc_pvalloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bcd619797e785f90cc9fd67208267c26c8e4b40d commit bcd619797e785f90cc9fd67208267c26c8e4b40d Author: Florian Weimer <fweimer@redhat.com> Date: Fri Aug 16 09:38:52 2013 +0200 CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode member. * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode member. * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. Return delayed error code. Remove GETDENTS_64BIT_ALIGNED conditional. * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define GETDENTS_64BIT_ALIGNED. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * manual/filesys.texi (Reading/Closing Directory): Document ENAMETOOLONG return value of readdir_r. Recommend readdir more strongly. * manual/conf.texi (Limits for Files): Add portability note to NAME_MAX, PATH_MAX. (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6fd8e941423354e6c7a951d37a60d2f1424d568e commit 6fd8e941423354e6c7a951d37a60d2f1424d568e Author: Carlos O'Donell <carlos@redhat.com> Date: Mon Sep 23 00:52:09 2013 -0400 BZ #15754: CVE-2013-4788 The pointer guard used for pointer mangling was not initialized for static applications resulting in the security feature being disabled. The pointer guard is now correctly initialized to a random value for static applications. Existing static applications need to be recompiled to take advantage of the fix. The test tst-ptrguard1-static and tst-ptrguard1 add regression coverage to ensure the pointer guards are sufficiently random and initialized to a default value. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a243b1a0797180e142d525d1325a173c758c3714 commit a243b1a0797180e142d525d1325a173c758c3714 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:24:30 2013 +0530 Check for integer overflow in cache size computation in strcoll strcoll is implemented using a cache for indices and weights of collation sequences in the strings so that subsequent passes do not have to search through collation data again. For very large string inputs, the cache size computation could overflow. In such a case, use the fallback function that does not cache indices and weights of collation sequences. Fixes CVE-2012-4412. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c1132021659d22753104762a074d6339ae6cbd01 commit c1132021659d22753104762a074d6339ae6cbd01 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:20:02 2013 +0530 Fall back to non-cached sequence traversal and comparison on malloc fail strcoll currently falls back to alloca if malloc fails, resulting in a possible stack overflow. This patch implements sequence traversal and comparison without caching indices and rules. Fixes CVE-2012-4424. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2dc811b78adc97b5f5d951716df30053a24da1a1 commit 2dc811b78adc97b5f5d951716df30053a24da1a1 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Tue Aug 20 08:40:05 2013 +0530 Simplify strcoll implementation Break up strcoll into simpler functions so that the logic is easier to follow and maintain. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9b951f59aa3c2f2d58d398aab146951216f9ff8d commit 9b951f59aa3c2f2d58d398aab146951216f9ff8d Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Fri Oct 25 10:22:12 2013 +0530 Fix stack overflow due to large AF_INET6 requests Resolves #16072 (CVE-2013-4458). This patch fixes another stack overflow in getaddrinfo when it is called with AF_INET6. The AF_UNSPEC case was fixed as CVE-2013-1914, but the AF_INET6 case went undetected back then. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=302c61e2d3536a6ff99d518499771afd6a951b0c commit 302c61e2d3536a6ff99d518499771afd6a951b0c Author: Andreas Schwab <schwab@suse.de> Date: Tue Jan 29 14:45:15 2013 +0100 Fix buffer overrun in regexp matcher https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b7e0492e183efc24e5658c860ca5711e00524dd7 commit b7e0492e183efc24e5658c860ca5711e00524dd7 Author: Carlos O'Donell <carlos@redhat.com> Date: Fri Jul 19 02:42:03 2013 -0400 CVE-2013-2207, BZ #15755: Disable pt_chown. The helper binary pt_chown tricked into granting access to another user's pseudo-terminal. Pre-conditions for the attack: * Attacker with local user account * Kernel with FUSE support * "user_allow_other" in /etc/fuse.conf * Victim with allocated slave in /dev/pts Using the setuid installed pt_chown and a weak check on whether a file descriptor is a tty, an attacker could fake a pty check using FUSE and trick pt_chown to grant ownership of a pty descriptor that the current user does not own. It cannot access /dev/pts/ptmx however. In most modern distributions pt_chown is not needed because devpts is enabled by default. The fix for this CVE is to disable building and using pt_chown by default. We still provide a configure option to enable hte use of pt_chown but distributions do so at their own risk. Cherry-pick of e4608715e6e1dd2adc91982fd151d5ba4f761d69. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02a002fe9c0b65532643a88b01253e95ba8ba8c6 commit 02a002fe9c0b65532643a88b01253e95ba8ba8c6 Author: Jeff Law <law@redhat.com> Date: Wed Nov 28 14:12:28 2012 -0700 [BZ #14889] * sunrpc/rpc/svc.h (__svc_accept_failed): New prototype. * sunrpc/svc.c: Include time.h. (__svc_accept_failed): New function. * sunrpc/svc_tcp.c (rendezvous_request): If the accept fails for any reason other than EINTR, call __svc_accept_failed. * sunrpc/svc_udp.c (svcudp_recv): Similarly. * sunrpc/svc_unix.c (rendezvous_request): Similarly. Cherry-pick of 14bc93a967e62abf8cf2704725b6f76619399f83 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b498440aac70e994f32f45a31102964313af690 commit 3b498440aac70e994f32f45a31102964313af690 Author: Andreas Schwab <schwab@suse.de> Date: Wed Nov 28 10:24:06 2012 +0100 Properly handle indirect functions in ABI check on powerpc64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8282b7f2aa6380e8a91515f748d4693d8151fc4f commit 8282b7f2aa6380e8a91515f748d4693d8151fc4f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Apr 26 13:00:56 2013 -0500 PowerPC: modf optimization fix This patch fix the 3c0265394d9ffedff2b0de508602dc52e077ce5c commits by correctly setting minimum architecture for modf PPC optimization to power5+ instead of power5 (since only on power5+ round/ceil will be inline to inline assembly). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f commit 17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 25 16:10:06 2013 -0500 PowerPC: modf optimization This patch implements modf/modff optimization for POWER by focus on FP operations instead of relying in integer ones. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=60dc6d12c5c61b05013cb15f63349dd3d343f26d commit 60dc6d12c5c61b05013cb15f63349dd3d343f26d Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Mar 13 10:46:08 2013 -0300 PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall. Backport of d5e0b9bd6e296f3ec5263fa296d39f3fed9b8fa2. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cc328ae264f5b97d2811a95d84112bb1c6c7cae3 commit cc328ae264f5b97d2811a95d84112bb1c6c7cae3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 4 22:02:41 2013 -0300 PowerPC: gettimeofday optimization by using IFUNC https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=36016f626e72f5d1cb6107deeab29768d82ff7e3 commit 36016f626e72f5d1cb6107deeab29768d82ff7e3 Merge: 4e1f97c 043c748 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Mar 1 16:20:18 2013 -0600 Merge remote branch 'remotes/origin/release/2.16/master' into local_ibm_2.16 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4e1f97ccdcc257eba262667f7a3179a7d530330d commit 4e1f97ccdcc257eba262667f7a3179a7d530330d Author: Mike Frysinger <vapier@gentoo.org> Date: Wed Nov 28 23:04:32 2012 -0500 byteswap.h: fix gcc ver test for __builtin_bswap{32,64} The __builtin_bswap* functions were introduced in gcc-4.3, not gcc-4.2. Fix the __GNUC_PREREQ tests to reflect this. Otherwise trying to compile code with gcc-4.2 falls down: In file included from /usr/include/endian.h:60, from /usr/include/ctype.h:40, /usr/include/bits/byteswap.h: In function 'unsigned int __bswap_32(unsigned int)': /usr/include/bits/byteswap.h:46: error: '__builtin_bswap32' was not declared in this scope /usr/include/bits/byteswap.h: In function 'long long unsigned int __bswap_64(long long unsigned int)': /usr/include/bits/byteswap.h:110: error: '__builtin_bswap64' was not declared in this scope Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit c9d6789ebe028a260d3e5be0c26b7d02fdfe99fe) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=025b233a88a30f5f0474ff2c6051313eb33e5689 commit 025b233a88a30f5f0474ff2c6051313eb33e5689 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Nov 20 00:04:45 2012 +0000 Fix __bswap_64 return type in generic bits/byteswap.h. (cherry picked from commit ecd4caf9783c99fb068a100c35899a0c3a3c6d98) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2c739e2cffb65d80787cfa861f9f6c62de327ad6 commit 2c739e2cffb65d80787cfa861f9f6c62de327ad6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Oct 12 09:21:47 2012 -0700 Use __uint64_t in x86 __bswap_64 (cherry picked from commit d394eb742a3565d7fe7a4b02710a60b5f219ee64) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a24f8ac8e65b451efc81839dd653d0a0e95a23ab commit a24f8ac8e65b451efc81839dd653d0a0e95a23ab Author: Andreas Schwab <schwab@linux-m68k.org> Date: Tue May 1 17:10:10 2012 +0200 Fix missing _mcount@GLIBC_2.0 on powerpc32 (cherry picked from commit 261f485936b283f4327fc1f2fc8fd1705d805c12) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=94464655b576985fdd5f66f7f6126ee1f92a41cc commit 94464655b576985fdd5f66f7f6126ee1f92a41cc Author: Peter Bergner <bergner@vnet.ibm.com> Date: Fri Jul 6 13:24:49 2012 -0500 Add AT_PLATFORM env variable to ld.so to override auxv AT_PLATFORM. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d846920271a0f4dc54c0dbbd56998228e75e776c commit d846920271a0f4dc54c0dbbd56998228e75e776c Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Jul 6 13:03:09 2012 -0500 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The annotated tag, glibc-2.21 has been created at dee233133daf497cdb3a507a7da9d88414820a1f (tag) tagging 4e42b5b8f89f0e288e68be7ad70f9525aebc2cff (commit) replaces glibc-2.20 tagged by Carlos O'Donell on Fri Feb 6 01:42:58 2015 -0500 - Log ----------------------------------------------------------------- The GNU C Library ================= The GNU C Library version 2.21 is now available. The GNU C Library is used as *the* C library in the GNU system and in GNU/Linux systems, as well as many other systems that use Linux as the kernel. The GNU C Library is primarily designed to be a portable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known. The GNU C Library webpage is at http://www.gnu.org/software/libc/ Packages for the 2.21 release may be downloaded from: http://ftpmirror.gnu.org/libc/ http://ftp.gnu.org/gnu/libc/ The mirror list is at http://www.gnu.org/order/ftp.html NEWS for version 2.21 ===================== * The following bugs are resolved with this release: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892. * CVE-2015-1472 Under certain conditions wscanf can allocate too little memory for the to-be-scanned arguments and overflow the allocated buffer. The implementation now correctly computes the required buffer size when using malloc. * A new semaphore algorithm has been implemented in generic C code for all machines. Previous custom assembly implementations of semaphore were difficult to reason about or ensure that they were safe. The new version of semaphore supports machines with 64-bit or 32-bit atomic operations. The new semaphore algorithm is used by sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait, and sem_getvalue. * Port to Altera Nios II has been contributed by Mentor Graphics. * Optimized strcpy, stpcpy, strncpy, stpncpy, strcmp, and strncmp implementations for powerpc64/powerpc64le. Implemented by Adhemerval Zanella (IBM). * Added support for TSX lock elision of pthread mutexes on powerpc32, powerpc64 and powerpc64le. This may improve lock scaling of existing programs on HTM capable systems. The lock elision code is only enabled with --enable-lock-elision=yes. Also, the TSX lock elision implementation for powerpc will issue a transaction abort on every syscall to avoid side effects being visible outside transactions. * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for AArch64. Contributed by ARM Ltd. * i386 memcpy functions optimized with SSE2 unaligned load/store. * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag under certain input conditions resulting in the execution of a shell for command substitution when the applicaiton did not request it. The implementation now checks WRDE_NOCMD immediately before executing the shell and returns the error WRDE_CMDSUB as expected. * CVE-2012-3406 printf-style functions could run into a stack overflow when processing format strings with a large number of format specifiers. * CVE-2014-9402 The nss_dns implementation of getnetbyname could run into an infinite loop if the DNS response contained a PTR record of an unexpected format. * The minimum GCC version that can be used to build this version of the GNU C Library is GCC 4.6. Older GCC versions, and non-GNU compilers, can still be used to compile programs using the GNU C Library. * The GNU C Library is now built with -Werror by default. This can be disabled by configuring with --disable-werror. * New locales: tu_IN, bh_IN, raj_IN, ce_RU. * The obsolete sigvec function has been removed. This was the original 4.2BSD interface that inspired the POSIX.1 sigaction interface, which programs have been using instead for about 25 years. Of course, ABI compatibility for old binaries using sigvec remains intact. * Merged gettext 0.19.3 into the intl subdirectory. This fixes building with newer versions of bison. * Support for MIPS o32 FPXX, FP64A and FP64 ABI Extensions. The original MIPS o32 hard-float ABI requires an FPU where double-precision registers overlay two consecutive single-precision registers. MIPS32R2 introduced a new FPU mode (FR=1) where double-precision registers extend the corresponding single-precision registers which is incompatible with the o32 hard-float ABI. The MIPS SIMD ASE and the MIPSR6 architecture both require the use of FR=1 making a transition necessary. New o32 ABI extensions enable users to migrate over time from the original o32 ABI through to the updated o32 FP64 ABI. To achieve this the dynamic linker now tracks the ABI of any loaded object and verifies that new objects are compatible. Mode transitions will also be requested as required and unsupportable objects will be rejected. The ABI checks include both soft and hard float ABIs for o32, n32 and n64. GCC 5 with GNU binutils 2.25 onwards: It is strongly recommended that all o32 system libraries are built using the new o32 FPXX ABI (-mfpxx) to facilitate the transition as this is compatible with the original and all new o32 ABI extensions. Configure a MIPS GCC compiler using --with-fp-32=xx to set this by default. Contributors ============ This release was made possible by the contributions of many people. The maintainers are grateful to everyone who has contributed changes or bug reports. These include: Adhemerval Zanella Alan Hayward Alexandre Oliva Allan McRae Anders Kaseorg Andreas Krebbel Andreas Schwab Andrew Pinski Andrew Senkevich Anton Blanchard Arjun Shankar Aurelien Jarno Bram Brooks Moses Carlos O'Donell Chris Metcalf Chung-Lin Tang David Holsgrove David S. Miller Eric Biggers Florian Weimer Gratian Crisan H.J. Lu J. Brown James Lemke Jeff Law Jose E. Marchesi Joseph Myers Kaz Kojima Kostya Serebryany Leonhard Holz Ma Shimiao Maciej W. Rozycki Marcus Shawcroft Marek Polacek Martin Sebor Matthew Fortune Mike Frysinger Ondřej Bílka Paul Eggert Paul Pluzhnikov Petar Jovanovic Pravin Satpute Rajalakshmi Srinivasaraghavan Rasmus Villemoes Renlin Li Richard Earnshaw Richard Henderson Roland McGrath Ryan Cumming Samuel Thibault Siddhesh Poyarekar Stefan Liebler Steve Ellcey Tatiana Udalova Tim Lammens Tom de Vries Torvald Riegel Vladimir A. Nazarenko Wilco Dijkstra Will Newton -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJU1GKVAAoJECXvCkNsKkr/4IYIAMfU5+NN2z44R2SeRlH+bSZG rGCF7rUzUOY+ePVNdgOH2cUKfxuLyMU6aao/IVQ863VHW1Ct/x2goVU22oqnVmvP FeElVxZyzx7iCqipqyaobj0Fm/b563/4yQ+BEOjH39Sj5Ii5kY6PcQQslMJWIH5R /nHmO048ZAlx/vGWTczAR50HOW1z8H1gilWm8SBkq2BJ8UndhSXCVpThCdMGfeBF NUxUl2aSt3eghA0SWD3WgRzRR0vU9RHuNQ5k5ggjjRPtipa8DP04t0Bk7/QiLhj1 M2upSS7r4ceZZuFGX8oYVn3f0lTajpOOeuX7SBnKIgQ8cDXtSHST6yPMAbsJRB4= =odoa -----END PGP SIGNATURE----- Adhemerval Zanella (35): PowerPC: multiarch bzero cleanup for PPC64 PowerPC: memset optimization for POWER8/PPC64 powerpc: remove linux lowlevellock.h powerpc: Fix encoding of POWER8 instruction powerpc: Simplify encoding of POWER8 instruction libio: Refactor tst-fmemopen to use test-skeleton.c powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} powerpc: Add powerpc64 strspn optimization powerpc: Add powerpc64 strcspn optimization powerpc: Add powerpc64 strpbrk optimization libio: Fix buffer overrun in tst-ftell-active-handler libio: Fix variable aligment in tst-ftell-active-handler powerpc: Fix lgammal_r overflow warnings Fix __sendmmsg prototype guards stdio-common: Include <libc-internal.h> in some tests Function declaration cleanup mips: Fix __libc_pread prototype powerpc: Fix compiler warning on some syscalls powerpc: Add the lock elision using HTM powerpc: Add adaptive elision to rwlocks powerpc: abort transaction in syscalls powerpc: Fix Copyright dates and CL entry Add x86 32 bit vDSO time function support powerpc: Optimized st{r,p}cpy for POWER8/PPC64 powerpc: Optimized strcat for POWER8/PPC64 powerpc: Optimized strncat for POWER7/PPC64 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 powerpc: Optimized strcmp for POWER8/PPC64 powerpc: Optimized strncmp for POWER8/PPC64 powerpc: Fix POWER7/PPC64 performance regression on LE BZ #16418: Fix powerpc get_clockfreq raciness powerpc: Fix ifuncmain6pie failure with GCC 4.9 powerpc: Fix powerpc64 build failure with binutils 2.22 powerpc: Fix fsqrt build in libm [BZ#16576] powerpc: Fix fesetexceptflag [BZ#17885] Alan Hayward (1): [AArch64] Add ipc.h. Alexandre Oliva (6): Require check-safety.sh to pass; wish for check that all fns are documented manual: cuserid is mtasurace if not passed a string ctermid: return string literal, document MT-Safety pitfall BZ#14498: fix infinite loop in nss_db_getservbyname BZ#16469: don't drop trailing dot in res_nquerydomain(..., name, NULL, ...) BZ#16469: resolv: skip leading dot in domain to search Allan McRae (5): Open development for 2.21 Update Russian translation Update French translation stdio-common/Makefile: readd bug26 testcase Label CVE-2014-9402 in NEWS Anders Kaseorg (2): manual: Remove incorrect claim that qsort() can be stabilized manual: Correct guarantee about pointers compared by qsort() Andreas Krebbel (2): stdlib/longlong.h: Add __udiv_w_sdiv prototype. iconv: Suppress array out of bounds warning. Andreas Schwab (20): Handle zero prefix length in getifaddrs (BZ #17371) Fix misdetected Slow_SSE4_2 cpu feature bit (bug 17501) Don't error out writing a multibyte character to an unbuffered stream (bug 17522) Remove unused include m68k: don't expect PLT reference to __tls_get_addr Don't touch user-controlled stdio locks in forked child (bug 12847) Update NEWS Remove duplication from gconv-modules Properly handle forced elision in pthread_mutex_trylock (bug 16657) Remove obsolete comment Constify string parameters Fix printf format error Fix changelog typo m68k: remove @PLTPC from _dl_init call Remove 17581 from NEWS m68k: force inlining bswap functions m68k: fix missing definition of __feraiseexcept m68k/coldfire: avoid warning about volatile register variables ia64: avoid set-but-not-used warning Include <signal.h> in sysdeps/nptl/allocrtsig.c Andrew Pinski (1): AArch64: Reformat inline-asm in elf_machine_load_address Andrew Senkevich (4): Update minimal required bunutils version to 2.22 i386: memcpy functions with SSE2 unaligned load/store i386: Fix build by GCC 5.0 Remove duplicated -frounding-math Anton Blanchard (1): powerpc: Fix __arch_compare_and_exchange_bool_64_rel Arjun Shankar (6): New test for ftime Write errors to stdout and not stderr in nptl/tst-setuid3.c Modify several tests to use test-skeleton.c Modify stdio-common/tst-fseek.c to use test-skeleton.c Modify stdlib/tst-bsearch.c to use test-skeleton.c Modify libio/tst-fopenloc.c to use test-skeleton.c Aurelien Jarno (2): resolv: improve comments about nserv and nservall resolv: fix rotate option Bram (1): Fix segmentation fault when LD_LIBRARY_PATH contains only non-existings paths Brooks Moses (1): sysdeps/x86_64/start.S doesn't have a .size elf directive for _start. Carlos O'Donell (22): HPPA: Transition to new non-addon NPTL. HPPA: Add c++-types.data. Correctly size profiling reloc table (bug 17411) hppa: Make __SIGRTMIN 32 (ABI break). elf/dl-load.c: Use __strdup. manual/llio.texi: Add Linux-specific comments for write(). Run check-localpltk/textrel/execstack over ld.so. manual/llio.texi: Comment on write atomicity. CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. Expand comments in elf/ldconfig.c (search_dir) Use ALIGN_UP in nptl/nptl-init.c Fix indenting in bits/ioctl-types.h. Update libc.pot: Regenerate INSTALL. Fix semaphore destruction (bug 12674). Fix recursive dlopen. tst-getpw: Rewrite. Update copyright year to 2015 for new files. hppa: Remove warnings and fix conformance errors. glibc 2.21 pre-release update. hppa: Sync with pthread.h. Update version.h and include/features.h for 2.21 release Chris Metcalf (32): tile: remove linux lowlevellock.h tilegx: optimize string copy_byte() internal function tilegx: provide optimized strnlen, strstr, and strcasestr tile: add support for _SC_LEVEL*CACHE* sysconf() queries tile: optimize memcmp tile: make the prolog of clone() more conformant tile: add clock_gettime support via vDSO tile: fix copyright header blocks in just-committed files tile: add inhibit_loop_to_libcall to string functions math: increase timeout for math/atest-*.c iconvdata/tst-loading: bump up timeout to 10s tilegx: fix strstr to build and link better tile: provide localplt.data with __tls_get_addr optional tile: remove localplt.data and use generic one again. tile: separate ffsll from ffs Update NEWS and ChangeLog with two tile bug fixes. tilegx: remove implicit boolean conversion in strstr. Fix namespace conformance issue with Bessel functions. NEWS: mention bug fix for 17747. tilegx: enable wordsize-64 support for ieee745 dbl-64. tilegx32: avoid a a -Werror warning from unwinding tilegx: fix sysdep.h to avoid a redefinition warning linux/clock_settime: remove unnecessary vDSO definitions tile: add no-op fe*() routines for libc internal use posix/Makefile: use $(objpfx) for files in before-compile. tile: prefer inlines to macros in math_private.h. Fix a couple of -Wundef warnings. Fix some warnings in the absence of FP round/exception support lround: provide cast for wordsize-64 version if needed tile: check error properly for vDSO calls posix/regcomp: initialize union structure tag to avoid warning tilegx32: set __HAVE_64B_ATOMICS to 0 Chung-Lin Tang (4): Add Nios II definitions to elf/elf.h. Remove divide from _ELF_DYNAMIC_DO_RELOC in elf/dynamic-link.h. Commit nios2 port to master. Function name typo error in non-PIC case, fixed in this patch. David Holsgrove (3): MicroBlaze: Fix integer-pointer conversion warning MicroBlaze: Fix volatile-register-var warning in READ_THREAD_POINTER MicroBlaze: Avoid pointer to integer conversion warning David S. Miller (6): Fix sparc build. Fix array bounds warnings in elf_get_dyanmic_info() on sparc with gcc-4.6 Fix soft-fp build warning on sparc about strict aliasing. Fix scanf15.c testsuite build on sparc. Fix sparc semaphore implementation after recent changes. Fix two bugs in sparc atomics. Eric Biggers (1): setenv fix memory leak when setting large, duplicate string (BZ #17658) Florian Weimer (6): Turn on -Werror=implicit-function-declaration malloc: additional unlink hardening for non-small bins [BZ #17344] Complete the removal of __gconv_translit_find Update NEWS for bug 17608 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] iconvdata/run-iconv-test.sh: Actually test iconv modules Gratian Crisan (1): arm: Re-enable PI futex support for ARM kernels >= 3.14.3 H.J. Lu (27): Require autoconf 2.69 Resize DTV if the current DTV isn't big enough Mention fix for PR 13862 Replace 1L with (mp_limb_t) 1 Compile s_llround.c with -Wno-error for x32 build Replace -Wno-error with -fno-builtin-lround Remove @PLT from "call _dl_init@PLT" in _dl_start_user Add hidden __tls_get_addr/___tls_get_addr alias Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Replace %ld/%lu with %jd/%ju and cast to intmax_t/uintmax_t Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Replace %ld with %jd and cast to intmax_t Mention fix for BZ #17732 Mention i386 memcpy with SSE2 unaligned load/store Don't check PI_STATIC_AND_HIDDEN in i386 dl-machine.h Define CLOCKS_PER_SEC type to the type clock_t Mention bug fix for BZ #17806 Use uint64_t and (uint64_t) 1 for 64-bit int Also use uint64_t in __new_sem_wait_fast Treat model numbers 0x4a/0x4d as Silvermont Also treat model numbers 0x5a/0x5d as Silvermont Use AVX unaligned memcpy only if AVX2 is available J. Brown (1): Recognize recent x86 CPUs in string.h James Lemke (2): Fix for test "malloc_usable_size: expected 7 but got 11" Fix for test "malloc_usable_size: expected 7 but got 11" Jeff Law (1): CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] Jose E. Marchesi (1): Fix sparc struct fpu definition. Joseph Myers (141): Add new Linux 3.16 constants to netinet/udp.h. Move architecture-specific shlib-versions entries to sysdeps files. Move OS-specific shlib-versions entries to sysdeps files. Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions. Remove configuration name patterns from shlib-versions. Remove bitrotten --enable-oldest-abi (bug 6652). soft-fp: Correct _FP_TO_INT formatting. soft-fp: Fix comment formatting. Move some setrlimit definitions to syscalls.list (bug 14138). Clean up gnu/lib-names.h generation (bug 14171). Remove shlib-versions entries redundant with DEFAULT entries. Run tst-ld-sse-use.sh with bash. Move some *at definitions to syscalls.list (bug 14138). Move execve to syscalls.list (bug 14138). Move some chown / lchown / fchown definitions to syscalls.list (bug 14138). Support and use mixed compat/non-compat aliases in syscalls.list. Don't use INTUSE with __adjtimex (bug 14132). soft-fp: Remove FP_CLEAR_EXCEPTIONS. soft-fp: Make extensions of subnormals from XFmode to TFmode signal underflow if traps enabled. soft-fp: Refactor exception handling for comparisons. soft-fp: Fix _FP_TO_INT latent bug in overflow handling. soft-fp: Add FP_DENORM_ZERO. Remove stray *_internal aliases (bug 14132). Don't use INTDEF/INTUSE with __cxa_atexit (bug 14132). soft-fp: Support more precise "invalid" exceptions. soft-fp: Support rsigned == 2 in _FP_TO_INT. soft-fp: Use parentheses around macro arguments. Don't use INTVARDEF/INTUSE with __libc_enable_secure (bug 14132). Remove CANCEL-FCT-WAIVE and CANCEL-FILE-WAIVE. conformtest: clean up POSIX expections for sys/utsname.h, sys/wait.h. Move readv and writev definitions to syscalls.list (bug 14138). Don't use INTDEF with __ldexpf (bug 14132). Don't use INTDEF for powerpc32 compat symbols (bug 14132). Move some chown / lchown / fchown definitions to syscalls.list (bug 14138). Move get*id and getgroups definitions to syscalls.list (bug 14138). Move setfsgid/setfsuid definitions to syscalls.list (bug 14138). Don't use INTDEF/INTUSE in unwind-dw2-fde.c (bug 14132). Remove __libc_creat function name. Remove __libc_readv and __libc_writev function names. Move powerpc64 pread/pwrite definitions to syscalls.list (bug 14138). Add bug 15215 to NEWS; move bug 17344 to correct version's list in NEWS. Remove __libc_pselect alias. Update autoconf version requirement in install.texi. Make aclocal.m4 comment mention updating install.texi for autoconf version. Remove __libc_nanosleep function name. soft-fp: Add _FP_TO_INT_ROUND. Don't use INTDEF/INTUSE with _dl_argv (bug 14132). Don't use INTDEF/INTUSE with _dl_init (bug 14132). Don't use INTDEF/INTUSE with _dl_mcount (bug 14132). Remove INTDEF / INTUSE / INTVARDEF (bug 14132). Remove __libc_waitpid function name. Fix tzfile.c namespace (bug 17583). Fix __getcwd rewinddir namespace (bug 17584). Fix malloc_info namespace (bug 17570). Fix qsort_r namespace (bug 17571). Fix x86_64 rawmemchr namespace (bug 17572). Fix stpcpy / mempcpy namespace (bug 17573). Fix __printf_fp wmemset namespace (bug 17574). Fix __get_nprocs fgets_unlocked namespace (bug 17582). Fix locale memmem namespace (bug 17585). Fix localealias.c fgets_unlocked namespace (bug 17589). Add tests for namespace for static linking. Fix strtoll / strtoull namespace for 32-bit (bug 17594). Use prototype definition for __strtol. Fix build of C mempcpy and stpcpy. Require GCC 4.6 or later to build glibc. Only declare __sigpause in installed signal.h when necessary. Remove ARM __GNUC_PREREQ(4,4) conditionals. Remove x86_64 __GNUC_PREREQ (4, 6) conditional. Fix libm mpone, mptwo namespace (bug 17616). Fix perror fileno namespace (bug 17633). Fix warning in posix/bug-regex31.c. Fix warning in stdio-common/tst-printf-round.c. Fix warning in setjmp/jmpbug.c. Fix test-strchr.c warnings for wide string testing. Remove TEST_IFUNC, tests-ifunc and *-ifunc.c tests. Fix warnings in fwscanf / rewind tests. FIx ldbl-128ibm frexpl for 32-bit systems (bug 16619, bug 16740). Fix sysdeps/unix/sysv/linux/arm/libc-do-syscall.S warning. Fix nptl/tst-cancel-self-cancelstate.c warning. Fix sysdeps/mips/__longjmp.c warning. Avoid warnings for unused results in nscd/connections.c. Fix nss/tst-nss-test1.c format warning. Fix stdio-common/tst-fmemopen.c format warnings. Fix dlfcn/failtestmod.c warning. Fix libio/bug-ungetwc1.c warning. Avoid deprecated sigblock in misc/tst-pselect.c. Make linknamespace tests check only relevant libraries. Fix elf/tst-unique4lib.cc warning. Fix fgets_unlocked namespace issues (bug 17664). Remove excess declarations from unistd.h for XPG3/XPG4 (bug 17665). Fix warning in posix/tst-getopt_long1.c. Fix -Waddress warnings in nptl/tst-mutex1.c. Fix warning in nptl/tst-stack4.c. Fix getifaddrs, freeifaddrs namespace (bug 17668). Remove some linknamespace test XFAILs. Fix linknamespace getdate_err handling. Fix linknamespace h_errno handling. Fix pthreads getrlimit, gettimeofday namespace (bug 17682). Add macros for diagnostic control, use for scanf %a tests. Disable -Wdiv-by-zero for some tests in stdio-common/tst-unlockedio.c. Disable -Wdeprecated-declarations for register_printf_function calls in tst-printfsz.c. Use -Werror by default, add --disable-werror. Fix tst-ftell-active-handler.c warning. Fix strftime wcschr namespace (bug 17634). Fix MIPS sigaction build. Fix MIPS waitid build. Clean up localedata tests printf formats, don't use -Wno-format. Add more headers to include/ for conform tests. Move semaphore.h to sysdeps/pthread/. Remove some semaphore.h linknamespace XFAILs. Fix resolver if_* namespace (bug 17717). Fix x86_64 memrchr namespace (bug 17719). Fix resolver inet_* namespace (bug 17722). Fix profil_counter namespace (bug 17725). Fix resolver bind, getsockname namespace (bug 17733). Split __kernel_standard* functions (fixes bug 17724). Make __ASSUME_UTIMES hppa-specific. Fix libm feraiseexcept namespace (bug 17723). Clean up powerpc fegetround / __fegetround inlines. Fix libm fegetenv namespace (bug 17748). Update copyright dates with scripts/update-copyrights. Update copyright dates not handled by scripts/update-copyrights. Use single year in copyright notice in banner in ntpl/version.c. Fix MIPS bits/fcntl.h namespace (bug 17780). Fix MIPS sa_flags type (bug 17781). Fix MIPS TIOCSER_TEMT namespace (bug 17782). Fix libm fegetround namespace (bug 17748). Fix wordsize-64 posix_fadvise64, posix_fallocate64 namespace (bug 17777). Fix isblank / isascii / toascii namespace (bug 17635). Fix ARM posix_fadvise64 namespace (bug 17793). Fix MIPS n64 posix_fadvise namespace (bug 17796). Fix libm feholdexcept namespace (bug 17748). Fix libm fesetenv namespace (bug 17748). Fix libm fesetround namespace (bug 17748). Fix libm feupdateenv namespace (bug 17748). Fix ldbl-96 scalblnl for subnormal arguments (bug 17834). Fix ldbl-96 scalblnl underflowing results (bug 17803). Fix powerpc-nofpu fesetenv namespace (bug 17748). soft-fp: Use __label__ for all labels within macros. Disable 64-bit atomics for MIPS n32. Kaz Kojima (1): * Fix SH specific compiler warnings which are for integer-pointer Kostya Serebryany (3): remove nested function hack_digit remove nested functions from elf/dl-deps.c remove nested functions from elf/dl-load.c Leonhard Holz (4): strcoll: improve performance by removing the cache (#15884) Fix tst-strcoll-overflow returning before timeout (BZ #17506) Speed up strcoll by inlining Fix memory handling in strxfrm_l [BZ #16009] Ma Shimiao (1): manual: fix addmntent's MT-Safety race annotation Maciej W. Rozycki (1): MIPS: Avoid a dangling `vfork@GLIBC_2.0' reference Marcus Shawcroft (1): Fix ChangeLog formatting of previous commit. Marek Polacek (1): Fix tst_wcscpy.c test. Martin Sebor (1): Clarify math/README.libm-test. Add "How to read the test output." Matthew Fortune (5): Add a hook to enable load-time inspection of program headers Add support for MIPS O32 FPXX and .MIPS.abiflags Fix MIPS variable PAGE_SIZE bug (16191) NEWS for MIPS ABIs MicroBlaze: Fix BZ17791 - Remove fixed page size macros and others Mike Frysinger (1): arm: drop EABI check Ondřej Bílka (8): Sync recvmmsg prototype with kernel usage. Fix typo in changelog. Return allocated array instead of unallocated. Simplify strncat. Clean up check_pf allocation pattern. addresses Add changelog Suppress warning in string/tester.c for gcc 4.9 Revert "Suppress warning in string/tester.c for gcc 4.9" Paul Eggert (1): fnmatch: work around GCC compiler warning bug with uninit var Paul Pluzhnikov (1): CVE-2015-1472: wscanf allocates too little memory Petar Jovanovic (1): mips: Do not use jal to reach __libc_start_main Pravin Satpute (2): New locale ce_RU (BZ #17192) New locale raj_IN (#16857) Rajalakshmi Srinivasaraghavan (3): powerpc: strtok{_r} optimization for powerpc64 powerpc: POWER7 strcpy optimization for unaligned strings powerpc: Optimize POWER7 strcmp trailing checks Rasmus Villemoes (1): Fix prototype of eventfd. Renlin Li (1): [AArch64] End frame record chain correctly. Richard Earnshaw (5): [AArch64] Add optimized strchrnul. [AArch64] Fix strchrnul clobbering v15 * string/stpcpy.c (__stpcpy): Rewrite using strlen and memcpy. AArch64 optimized implementation of strrchr. AArch64: Optimized implementations of strcpy and stpcpy. Richard Henderson (2): alpha: Fix soft-fp breakage Add -Wno-trampolines as needed Roland McGrath (62): Move findidx nested functions to top-level. Don't use a nested function in rpmatch. Minor cleanup in ld-ctype.c Minor cleanup in locale.c Remove unnecessarily nested function in do_lookup_unique. BZ#17460: Fix buffer overrun in nscd --help. Remove sysdeps/arm/soft-fp directory. Fix NPTL build error when missing __NR_set_robust_list. NPTL: Conditionalize more uses of SIGCANCEL and SIGSETXID. NPTL: Conditionalize direct futex syscall uses. NPTL: Clean up THREAD_SYSINFO macros. Remove obsolete TLS_DEFINE_INIT_TP fallback. Make internal lock-init macros return void. NPTL: Add some missing #include's NPTL: Clean up gratuitous Linuxism in libpthread.so entry point. Tiny refactoring in fts to eliminate a warning. Avoid local PLT reference in __nptl_main. ARM: Use movw/movt more when available Rework some nscd code not to use variable-length struct types. Prototypify htonl and htons definitions. Rework compiler version check in configure. Clean up wchar_t conversion code in iconv program. Clean up internal ctype.h header. BZ#17496: Fix gnu/lib-names.h dependency. NPTL: Move __libc_multiple_threads_ptr defn to nptl-init.c Remove sigvec. NPTL: Refactor createthread.c NPTL: Move Linux-specific createthread.c to sysdeps. NPTL: Add stub createthread.c Test that pthread_create diagnoses invalid scheduling parameters. NPTL: Don't (re)validate sched_priority in pthread_create. NPTL: Refactor scheduler setup in pthread_create. NPTL: Conditionalize asynchronous cancellation support on [SIGCANCEL]. NPTL: Use __libc_fatal in unwind.c. NPTL: Fix pthread_create regression from default-sched.h refactoring. De-warning a few stubs. Fix -Wformat-security warnings in posix/regexbug1.c Eliminate -Wno-format from printf/scanf tests. Suppress -Wformat-security in tst-error1.c. Refactor shm_{open,unlink} code to separate Linux-specific directory choice from POSIX-generic code. Fix NPTL build for !__ASSUME_SET_ROBUST_LIST case. NPTL: Add stubs for Linux-only extension functions. NPTL: Refactor named semaphore code to use shm-directory.h Use pragmas rather than makefiles for necessary options for unwind code. Revert "Use pragmas rather than makefiles for necessary options for unwind code." Use PTR_MANGLE on libgcc unwinder function pointers. Remove explicit inline on malloc perturb functions. Fix stub __if_freenameindex build error. NPTL: Remove gratuitous Linuxisms from gai_misc.h. NPTL: Move fork state variables to initializer files. ARM: Consolidate with generic unwinder wrapper code NPTL: Refactor cpu_set_t validation to be sysdeps-controlled Add stub sys/procfs.h file NPTL: Fixed missed conditionalization of setxid hooey. NPTL: Fix generic pthread_sigmask. Fix copyright year on new stub sys/procfs.h file. Clean up allocrtsig code. Some #include cleanup in aio/timer code. Fix shm-directory.h #include. Remove some references to bcopy/bcmp/bzero. Add missing libc_hidden_def to stub getrlimit64. Add missing libc_hidden_weak to stub if_nameindex, if_freenameindex. Ryan Cumming (1): Define CLOCK_TAI on Linux (bug 17608) Samuel Thibault (1): hurd: Fix dlopening libraries from static programs Siddhesh Poyarekar (53): Return failure in getnetgrent only when all netgroups have been searched (#17363) Enhance tst-xmmymm.sh to detect zmm register usage in ld.so (BZ #16194) Fix typo in macro names in sysconf.c Add correct variable names for _POSIX_IPV6 and _POSIX_RAW_SOCKETS Remove _POSIX_REGEX_VERSION Revert to defining __extern_inline only for gcc-4.3+ (BZ #17266) Add NEWS entry for previous commit Fix memory leak in error path of do_ftell_wide (BZ #17370) Make __extern_always_inline usable on clang++ again Assume that all _[PS]C_* and _CS_* macros are always defined Include .interp section only for libc.so Remove CFLAGS for interp.c Fix infinite loop in check_pf (BZ #12926) Fix up incorrect formatting in last commit Fix stack alignment when loader is invoked directly Use GOT instead of GOT12 all over Add new macro IN_MODULE to identify module in which source is built Fix -Wundef warning in SHLIB_COMPAT Auto-generate libc-modules.h Use MODULE_NAME in stap-probe instead of IN_LIB Remove IN_LIB Define IN_MODULE for translation units that define NOT_IN_libc Remove IS_IN_libc Remove IS_IN_ldconfig Remove IS_IN_nscd Remove IS_IN_libdl Remove IS_IN_librt Remove IS_IN_libpthread Remove IS_IN_libm Remove IS_IN_rtld Remove last place for definition of IS_IN_* macros Remove NOT_IN_libc Use IS_IN internally only Don't use __warn_memset_zero_len for gcc-5.0 or newer Update NEWS for previous two commits ftell: seek to end only when there are unflushed bytes (BZ #17647) tst-ftell-active-handler: Open file with O_TRUNC for w modes Reset cached offset when reading to end of stream (BZ #17653) Fix up function definition style Fix date in ChangeLog Fix another typo in the ChangeLog Fix 'array subscript is above array bounds' warning in res_send.c Fix the 'array subscript is above array bounds' warning correctly Remove Wundef warnings for specification macros Add _POSIX namespace SYSCONF macros to posix-conf-vars.list Use posix-conf-vars.list to generate spec array Make type for spec variable size as size_t Use one-dimension arrays in gen-posix-conf-vars.awk Remove uses of sprintf in gen-posix-conf-vars.awk Fix typo in ChangeLog [s390] Define a __tls_get_addr macro to avoid declaring it again Initialize nscd stats data [BZ #17892] Fix up ChangeLog formatting Stefan Liebler (13): S/390: Get rid of warning: the comparision will always evaluate as false. S/390: Get rid of warning unused variable in dl-machine.h. S/390: Add SystemTap probes to longjmp and setjmp. S/390: dl-machine.h: Use numbered labels in inline assembly. Add missing include of libc-internal.h. S/390: Get rid of assembler warning value truncated. Get rid of warning inlining failed in call to maybe_swap_uint32 Get rid of warning comparision will always evaluate as true resolv: Suppress maybe uninitialized warning Get rid of format warning in tst-widetext.c. Get rid of format warning in bug-vfprintf-nargs.c. S390: Get rid of linknamespace failures for string functions. S390: Get rid of linknamespace failures for utmp functions. Steve Ellcey (19): Modify ABI tests in MIPS preconfigure. Put mips preconfigure code inside mips* case statement. * sysdeps/mips/strcmp.S: New. Remove extra whitespace from end of line. 2014-12-10 Steve Ellcey <sellcey@imgtec.com> 2014-12-11 Steve Ellcey <sellcey@imgtec.com> * sysdeps/mips/dl-trampoline.c: Modify switch expression to have 2014-12-17 Steve Ellcey <sellcey@imgtec.com> 2014-12-19 Steve Ellcey <sellcey@imgtec.com> 2014-12-19 Steve Ellcey <sellcey@imgtec.com> Remove trailing white space. Add missing ChangeLog entries from Friday (Dec 19, 2014). Remove trailing whitespace. 2014-12-22 Steve Ellcey <sellcey@imgtec.com> Fix preprocessor indentation in sysdeps/mips/memcpy.S. 2015-01-05 Steve Ellcey <sellcey@imgtec.com> 2015-01-05 Steve Ellcey <sellcey@imgtec.com> 2015-01-05 Steve Ellcey <sellcey@imgtec.com> Merge branch 'master' of ssh://sourceware.org/git/glibc Tatiana Udalova (1): New Bhilodi and Tulu locales (BZ #17475) Tim Lammens (1): Fix memory leak in libio/wfileops.c do_ftell_wide [BZ #17370] Tom de Vries (1): Fix crossreference to nonexistent node BSD Handler Torvald Riegel (24): pthread_once: Clean up constants. pthread_once: Add fast path and remove x86 variants. Fix SPARC atomic_write_barrier. powerpc: Change atomic_write_barrier to have release semantics. Add arch-specific configuration for C11 atomics support. Add atomic operations similar to those provided by C11. Add tests for C11-like atomic operations. Use C11 atomics in pthread_once. microblaze: 64b atomic operations are not supported. Fix synchronization of TPP min/max priorities. Remove custom pthread_once implementation on sh. Remove custom pthread_once implementation on s390. Fix nptl/tst-mutex5.c: Do not skip tests if elision is enabled. Fix nptl/tst-sem4: always start with a fresh semaphore. Add comments for the generic lowlevellock implementation. Fix warning in elf/tst-unique4lib.cc. Fix warning in misc/tst-mntent2.c. Ignore warning in string/tester.c. sh: Remove custom lowlevellock, barrier, condvar, and rwlock implementations. Use generic lowlevellock-futex.h in x86_64 lowlevellock.h. i386: Move futex functions from lowlevellock.h to lowlevellock-futex.h. MicroBlaze: Remove custom pthread_once implementation on microblaze. MicroBlaze: Remove custom lowlevellock.h. Fix wake-up in sysdeps/nptl/fork.c. Vladimir A. Nazarenko (1): Fix incorrect mount table entry parsing in __getmntent_r Wilco Dijkstra (18): Remove spaces. Remove an unused include. Cleanup fesetexceptflag to use the same logic as the ARM version. No functional changes. Cleanup feclearexcept to use the same logic as the ARM version. No functional changes. Cleanup fedisableexcept to use the same logic as the ARM version. No functional changes. Cleanup feenableexcept to use the same logic as the ARM version. No functional changes. Call get_rounding_mode rather than duplicating functionality. Call libc_feholdexcept_aarch64 from math_private.h rather than duplicating functionality. Call libc_fetestexcept_aarch64 from math_private.h rather than duplicating functionality. This patch improves strcat performance by using strlen and strcpy. Strlen has a fast C This patch improves strncat performance by using strlen. Strlen has a fast C implementation, so Improve strcpy performance. Improve performance of strncpy. Fix typo. Call libc_fesetround_aarch64. Call libc_fetestexcept_aarch64. Optimize to reduce FPCR/FPSR accesses. Optimize to avoid an unnecessary FPCR read. Will Newton (10): ARM: Don't define _SYS_AUXV_H in sysdep.h Allow cross-building of tests stdlib/tst-strtod-round.c: Fix build on ARM benchtests: Add malloc microbenchmark AArch64: Update relocations for ILP32 AArch64: Use ELF macros rather than Elf64 throughout intl: Merge with gettext version 0.19.3 Bump required version of texinfo to 4.7 Require bison 2.7 or newer for regenerating intl/plural.y ARM: Remove configure check for binutils 2.21 for ARMv7 -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.20/master has been created at d3b0c8db9a4080c4f8a71cbf6912c05422094594 (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3b0c8db9a4080c4f8a71cbf6912c05422094594 commit d3b0c8db9a4080c4f8a71cbf6912c05422094594 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 12 05:34:16 2015 -0600 powerpc: Fix TABORT encoding for little endian This patch fix the TABORT encoding for toolchains with no support for HTM builtins. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f commit 1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:34:52 2014 -0500 powerpc: abort transaction in syscalls Linux kernel powerpc documentation states issuing a syscall inside a transaction is not recommended and may lead to undefined behavior. It also states syscalls does not abort transactoin neither they run in transactional state. To avoid side-effects being visible outside transactions, GLIBC with lock elision enabled will issue a transaction abort instruction just before all syscalls if hardware supports hardware transactions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0f7cecb9cf4b370c3d72f67e048bb07e238cf110 commit 0f7cecb9cf4b370c3d72f67e048bb07e238cf110 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:30:56 2014 -0500 powerpc: Add adaptive elision to rwlocks This patch adds support for lock elision using ISA 2.07 hardware transactional memory for rwlocks. The logic is similar to the one presented in pthread_mutex lock elision. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d45200a803939be3316b7ddf442906d544e9d43 commit 1d45200a803939be3316b7ddf442906d544e9d43 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:25:32 2014 -0500 powerpc: Add the lock elision using HTM This patch adds support for lock elision using ISA 2.07 hardware transactional memory instructions for pthread_mutex primitives. Similar to s390 version, the for elision logic defined in 'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined. Also, the lock elision code should be able to be built even with a compiler that does not provide HTM support with builtins. However I have noted the performance is sub-optimal due scheduling pressures. Conflicts: ChangeLog NEWS sysdeps/unix/sysv/linux/powerpc/lowlevellock.h https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6831ddb38379c1924bd19b3203d161a4c3ed1e2e commit 6831ddb38379c1924bd19b3203d161a4c3ed1e2e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Jan 11 19:33:17 2015 -0600 powerpc: Fix POWER7/PPC64 performance regression on LE This patch fixes a performance regression on the POWER7/PPC64 memcmp porting for Little Endian. The LE code uses 'ldbrx' instruction to read the memory on byte reversed form, however ISA 2.06 just provide the indexed form which uses a register value as additional index, instead of a fixed value enconded in the instruction. And the port strategy for LE uses r0 index value and update the address value on each compare loop interation. For large compare size values, it adds 8 more instructions plus some more depending of trailing size. This patch fixes it by adding pre-calculate indexes to remove the address update on loops and tailing sizes. For large sizes it shows a considerable gain, with double performance pairing with BE. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=473b6083820fd156985bf7b2cb60db9d4031b536 commit 473b6083820fd156985bf7b2cb60db9d4031b536 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jan 9 16:04:26 2015 -0500 powerpc: Optimized strncmp for POWER8/PPC64 This patch adds an optimized POWER8 strncmp. The implementation focus on speeding up unaligned cases follwing the ideas of power8 strcmp. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases (where sources alignment are different). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=299b9464d9a1a48bbcfbc1c7a99604091ec5248f commit 299b9464d9a1a48bbcfbc1c7a99604091ec5248f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Fri Jan 9 11:56:35 2015 -0500 powerpc: Optimize POWER7 strcmp trailing checks This patch optimized the POWER7 trailing check by avoiding using byte read operations and instead use the doubleword already readed with bitwise operations. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0685edc6676c7266fdc30fd0769fb88d058f04 commit 6f0685edc6676c7266fdc30fd0769fb88d058f04 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jan 7 07:18:30 2015 -0500 powerpc: Optimized strcmp for POWER8/PPC64 This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a38f68f12fd03374d599eeb0b6943e50b0ff7348 commit a38f68f12fd03374d599eeb0b6943e50b0ff7348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Dec 31 11:47:41 2014 -0500 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4242356131256e54ca3e96b0c6f2af773b7a69c8 commit 4242356131256e54ca3e96b0c6f2af773b7a69c8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:39:23 2014 -0500 powerpc: Optimized strncat for POWER7/PPC64 With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11ce06e589429143595a6c4b60ac7ab6372201b1 commit 11ce06e589429143595a6c4b60ac7ab6372201b1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:36:34 2014 -0500 powerpc: Optimized strcat for POWER8/PPC64 With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a9728856f02f74b60a546499c5bd8492d1726f98 commit a9728856f02f74b60a546499c5bd8492d1726f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 05:59:44 2014 -0600 powerpc: Optimized st{r,p}cpy for POWER8/PPC64 This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b53db929e654aaf97a2a239e17a87b04c768b854 commit b53db929e654aaf97a2a239e17a87b04c768b854 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Wed Dec 31 14:05:00 2014 -0500 powerpc: POWER7 strcpy optimization for unaligned strings This patch optimizes strcpy for ppc64/power7 for unaligned source or destination address. The source or destination address is aligned to doubleword and data is shifted based on the alignment and added with the previous loaded data to be written as a doubleword. For each load, cmpb instruction is used for faster null check. The word aligned optimization is also removed, since the new unaligned code path shows better results handling word-aligned strings. More combination of unaligned inputs is also added in benchtest to measure the improvement.The new optimization shows 2 to 80% of performance improvement for longer string though it does not show big difference on string size less than 16 due to additional checks. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4f9fb08d49740d9f18918bcf9d45ca594f416ee commit f4f9fb08d49740d9f18918bcf9d45ca594f416ee Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5985c6ea868db23380977a35a2167549f9a3653b commit 5985c6ea868db23380977a35a2167549f9a3653b Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8647419a62d1d5641488ca6430bb679cf1e766e0 commit 8647419a62d1d5641488ca6430bb679cf1e766e0 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 16:27:56 2014 -0500 powerpc: Add powerpc64 strpbrk optimization This patch makes the POWER7 optimized strpbrk generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f9f30622819b4d3685c0d448f3a3d49032472b07 commit f9f30622819b4d3685c0d448f3a3d49032472b07 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 15:24:55 2014 -0500 powerpc: Add powerpc64 strcspn optimization This patch makes the POWER7 optimized strcspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97104a4e2b866aae6a6593286b6c584339ef29d3 commit 97104a4e2b866aae6a6593286b6c584339ef29d3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 14:24:18 2014 -0500 powerpc: Add powerpc64 strspn optimization This patch makes the POWER7 optimized strspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 machines does not changed. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3e53c8246952898cd1fd23dfa0657b03db0e36b commit d3e53c8246952898cd1fd23dfa0657b03db0e36b Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Dec 1 09:03:58 2014 -0500 powerpc: strtok{_r} optimization for powerpc64 This patch optimizes strtok and strtok_r for POWERPC64. A table of 256 characters is created and marked based on the 'accept' argument and used to check for any occurance on the input string.Loop unrolling is also used to gain improvements. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b063985c1a750a1947fcf60e4606a3b0d7d0f37 commit 8b063985c1a750a1947fcf60e4606a3b0d7d0f37 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Nov 25 14:32:54 2014 -0500 powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=364c58517bdcc91c5bf1fcb57b4befff8951a51b commit 364c58517bdcc91c5bf1fcb57b4befff8951a51b Author: Anton Blanchard <anton@samba.org> Date: Tue Nov 25 07:26:12 2014 -0500 powerpc: Fix __arch_compare_and_exchange_bool_64_rel Fix a typo in the inline assembly. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=133a24ba079abf1e762bd4d85670e0bd8df660c4 commit 133a24ba079abf1e762bd4d85670e0bd8df660c4 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f8fbd413672816a429adc6b6c191ec8ea73421e8 commit f8fbd413672816a429adc6b6c191ec8ea73421e8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 5 08:01:09 2014 -0500 powerpc: Simplify encoding of POWER8 instruction https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e154589132de915ef165a1e26f89ba6997170c2b commit e154589132de915ef165a1e26f89ba6997170c2b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Nov 3 07:26:33 2014 -0500 powerpc: Fix encoding of POWER8 instruction This patch adds a binary encoding for 'mtvsrd' instruction to avoid build failures when assembler does not support POWER8. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46f58099960f7a2603c37c540d2644e392f0fdc7 commit 46f58099960f7a2603c37c540d2644e392f0fdc7 Author: Torvald Riegel <triegel@redhat.com> Date: Sat Oct 18 01:01:58 2014 +0200 powerpc: Change atomic_write_barrier to have release semantics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f892cacbdf50322bc3ee2e131c105c71b495086 commit 5f892cacbdf50322bc3ee2e131c105c71b495086 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 12:19:09 2014 -0400 PowerPC: memset optimization for POWER8/PPC64 This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 commit e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 16:54:46 2014 -0400 PowerPC: multiarch bzero cleanup for PPC64 This patch cleanups the multiarch bzero for powerpc64 by remove the multiarch objects and use instead the the memset embedded implementation presented in each multiarch optimization. The code generate is essentially the same, but the TB_TOCLESS (which is not essential). Conflicts: ChangeLog This is backport of 3b473fecdf4c52989cd915b649bb6d26c042d048. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10f5f4c8edc35b4c3912456ffee820975e20a50b commit 10f5f4c8edc35b4c3912456ffee820975e20a50b Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6f905009b29769bd27077389ce4379d5de80df2 commit e6f905009b29769bd27077389ce4379d5de80df2 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.20/master has been created at 47cb886328acf41612165a93e05af3db3d20ee17 (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=47cb886328acf41612165a93e05af3db3d20ee17 commit 47cb886328acf41612165a93e05af3db3d20ee17 Author: Paul Pluzhnikov <ppluzhnikov@google.com> Date: Fri Feb 6 00:30:42 2015 -0500 CVE-2015-1472: wscanf allocates too little memory BZ #16618 Under certain conditions wscanf can allocate too little memory for the to-be-scanned arguments and overflow the allocated buffer. The implementation now correctly computes the required buffer size when using malloc. A regression test was added to tst-sscanf. Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3b0c8db9a4080c4f8a71cbf6912c05422094594 commit d3b0c8db9a4080c4f8a71cbf6912c05422094594 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 12 05:34:16 2015 -0600 powerpc: Fix TABORT encoding for little endian This patch fix the TABORT encoding for toolchains with no support for HTM builtins. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f commit 1d19c9bc0dabb1d10c07cf4eec063f9da8406c2f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:34:52 2014 -0500 powerpc: abort transaction in syscalls Linux kernel powerpc documentation states issuing a syscall inside a transaction is not recommended and may lead to undefined behavior. It also states syscalls does not abort transactoin neither they run in transactional state. To avoid side-effects being visible outside transactions, GLIBC with lock elision enabled will issue a transaction abort instruction just before all syscalls if hardware supports hardware transactions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0f7cecb9cf4b370c3d72f67e048bb07e238cf110 commit 0f7cecb9cf4b370c3d72f67e048bb07e238cf110 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:30:56 2014 -0500 powerpc: Add adaptive elision to rwlocks This patch adds support for lock elision using ISA 2.07 hardware transactional memory for rwlocks. The logic is similar to the one presented in pthread_mutex lock elision. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d45200a803939be3316b7ddf442906d544e9d43 commit 1d45200a803939be3316b7ddf442906d544e9d43 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Nov 7 12:25:32 2014 -0500 powerpc: Add the lock elision using HTM This patch adds support for lock elision using ISA 2.07 hardware transactional memory instructions for pthread_mutex primitives. Similar to s390 version, the for elision logic defined in 'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined. Also, the lock elision code should be able to be built even with a compiler that does not provide HTM support with builtins. However I have noted the performance is sub-optimal due scheduling pressures. Conflicts: ChangeLog NEWS sysdeps/unix/sysv/linux/powerpc/lowlevellock.h https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6831ddb38379c1924bd19b3203d161a4c3ed1e2e commit 6831ddb38379c1924bd19b3203d161a4c3ed1e2e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Jan 11 19:33:17 2015 -0600 powerpc: Fix POWER7/PPC64 performance regression on LE This patch fixes a performance regression on the POWER7/PPC64 memcmp porting for Little Endian. The LE code uses 'ldbrx' instruction to read the memory on byte reversed form, however ISA 2.06 just provide the indexed form which uses a register value as additional index, instead of a fixed value enconded in the instruction. And the port strategy for LE uses r0 index value and update the address value on each compare loop interation. For large compare size values, it adds 8 more instructions plus some more depending of trailing size. This patch fixes it by adding pre-calculate indexes to remove the address update on loops and tailing sizes. For large sizes it shows a considerable gain, with double performance pairing with BE. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=473b6083820fd156985bf7b2cb60db9d4031b536 commit 473b6083820fd156985bf7b2cb60db9d4031b536 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jan 9 16:04:26 2015 -0500 powerpc: Optimized strncmp for POWER8/PPC64 This patch adds an optimized POWER8 strncmp. The implementation focus on speeding up unaligned cases follwing the ideas of power8 strcmp. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases (where sources alignment are different). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=299b9464d9a1a48bbcfbc1c7a99604091ec5248f commit 299b9464d9a1a48bbcfbc1c7a99604091ec5248f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Fri Jan 9 11:56:35 2015 -0500 powerpc: Optimize POWER7 strcmp trailing checks This patch optimized the POWER7 trailing check by avoiding using byte read operations and instead use the doubleword already readed with bitwise operations. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0685edc6676c7266fdc30fd0769fb88d058f04 commit 6f0685edc6676c7266fdc30fd0769fb88d058f04 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jan 7 07:18:30 2015 -0500 powerpc: Optimized strcmp for POWER8/PPC64 This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a38f68f12fd03374d599eeb0b6943e50b0ff7348 commit a38f68f12fd03374d599eeb0b6943e50b0ff7348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Dec 31 11:47:41 2014 -0500 powerpc: Optimized st{r,p}ncpy for POWER8/PPC64 This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4242356131256e54ca3e96b0c6f2af773b7a69c8 commit 4242356131256e54ca3e96b0c6f2af773b7a69c8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:39:23 2014 -0500 powerpc: Optimized strncat for POWER7/PPC64 With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11ce06e589429143595a6c4b60ac7ab6372201b1 commit 11ce06e589429143595a6c4b60ac7ab6372201b1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 13:36:34 2014 -0500 powerpc: Optimized strcat for POWER8/PPC64 With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a9728856f02f74b60a546499c5bd8492d1726f98 commit a9728856f02f74b60a546499c5bd8492d1726f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Dec 23 05:59:44 2014 -0600 powerpc: Optimized st{r,p}cpy for POWER8/PPC64 This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b53db929e654aaf97a2a239e17a87b04c768b854 commit b53db929e654aaf97a2a239e17a87b04c768b854 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Wed Dec 31 14:05:00 2014 -0500 powerpc: POWER7 strcpy optimization for unaligned strings This patch optimizes strcpy for ppc64/power7 for unaligned source or destination address. The source or destination address is aligned to doubleword and data is shifted based on the alignment and added with the previous loaded data to be written as a doubleword. For each load, cmpb instruction is used for faster null check. The word aligned optimization is also removed, since the new unaligned code path shows better results handling word-aligned strings. More combination of unaligned inputs is also added in benchtest to measure the improvement.The new optimization shows 2 to 80% of performance improvement for longer string though it does not show big difference on string size less than 16 due to additional checks. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4f9fb08d49740d9f18918bcf9d45ca594f416ee commit f4f9fb08d49740d9f18918bcf9d45ca594f416ee Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5985c6ea868db23380977a35a2167549f9a3653b commit 5985c6ea868db23380977a35a2167549f9a3653b Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8647419a62d1d5641488ca6430bb679cf1e766e0 commit 8647419a62d1d5641488ca6430bb679cf1e766e0 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 16:27:56 2014 -0500 powerpc: Add powerpc64 strpbrk optimization This patch makes the POWER7 optimized strpbrk generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f9f30622819b4d3685c0d448f3a3d49032472b07 commit f9f30622819b4d3685c0d448f3a3d49032472b07 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 15:24:55 2014 -0500 powerpc: Add powerpc64 strcspn optimization This patch makes the POWER7 optimized strcspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 does not change. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97104a4e2b866aae6a6593286b6c584339ef29d3 commit 97104a4e2b866aae6a6593286b6c584339ef29d3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 19 14:24:18 2014 -0500 powerpc: Add powerpc64 strspn optimization This patch makes the POWER7 optimized strspn generic by using default doubleword stores to zero the hash, instead of VSX instructions. Performance on POWER7/POWER8 machines does not changed. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d3e53c8246952898cd1fd23dfa0657b03db0e36b commit d3e53c8246952898cd1fd23dfa0657b03db0e36b Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Dec 1 09:03:58 2014 -0500 powerpc: strtok{_r} optimization for powerpc64 This patch optimizes strtok and strtok_r for POWERPC64. A table of 256 characters is created and marked based on the 'accept' argument and used to check for any occurance on the input string.Loop unrolling is also used to gain improvements. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b063985c1a750a1947fcf60e4606a3b0d7d0f37 commit 8b063985c1a750a1947fcf60e4606a3b0d7d0f37 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Nov 25 14:32:54 2014 -0500 powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel} On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=364c58517bdcc91c5bf1fcb57b4befff8951a51b commit 364c58517bdcc91c5bf1fcb57b4befff8951a51b Author: Anton Blanchard <anton@samba.org> Date: Tue Nov 25 07:26:12 2014 -0500 powerpc: Fix __arch_compare_and_exchange_bool_64_rel Fix a typo in the inline assembly. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=133a24ba079abf1e762bd4d85670e0bd8df660c4 commit 133a24ba079abf1e762bd4d85670e0bd8df660c4 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f8fbd413672816a429adc6b6c191ec8ea73421e8 commit f8fbd413672816a429adc6b6c191ec8ea73421e8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Nov 5 08:01:09 2014 -0500 powerpc: Simplify encoding of POWER8 instruction https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e154589132de915ef165a1e26f89ba6997170c2b commit e154589132de915ef165a1e26f89ba6997170c2b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Nov 3 07:26:33 2014 -0500 powerpc: Fix encoding of POWER8 instruction This patch adds a binary encoding for 'mtvsrd' instruction to avoid build failures when assembler does not support POWER8. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46f58099960f7a2603c37c540d2644e392f0fdc7 commit 46f58099960f7a2603c37c540d2644e392f0fdc7 Author: Torvald Riegel <triegel@redhat.com> Date: Sat Oct 18 01:01:58 2014 +0200 powerpc: Change atomic_write_barrier to have release semantics. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f892cacbdf50322bc3ee2e131c105c71b495086 commit 5f892cacbdf50322bc3ee2e131c105c71b495086 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 12:19:09 2014 -0400 PowerPC: memset optimization for POWER8/PPC64 This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 commit e6bb56b6914e6435e251814a3a0ccd7fb65a7e36 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 15 16:54:46 2014 -0400 PowerPC: multiarch bzero cleanup for PPC64 This patch cleanups the multiarch bzero for powerpc64 by remove the multiarch objects and use instead the the memset embedded implementation presented in each multiarch optimization. The code generate is essentially the same, but the TB_TOCLESS (which is not essential). Conflicts: ChangeLog This is backport of 3b473fecdf4c52989cd915b649bb6d26c042d048. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10f5f4c8edc35b4c3912456ffee820975e20a50b commit 10f5f4c8edc35b4c3912456ffee820975e20a50b Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6f905009b29769bd27077389ce4379d5de80df2 commit e6f905009b29769bd27077389ce4379d5de80df2 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.19/master has been created at b5faf032c4c6a2260a9a93d8d4df611caa8b54cc (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b5faf032c4c6a2260a9a93d8d4df611caa8b54cc commit b5faf032c4c6a2260a9a93d8d4df611caa8b54cc Author: Paul Pluzhnikov <ppluzhnikov@google.com> Date: Fri Feb 6 00:30:42 2015 -0500 CVE-2015-1472: wscanf allocates too little memory BZ #16618 Under certain conditions wscanf can allocate too little memory for the to-be-scanned arguments and overflow the allocated buffer. The implementation now correctly computes the required buffer size when using malloc. A regression test was added to tst-sscanf. Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=88a8a351f3a6a95205a1499fd68b79fc3d0b9d19 commit 88a8a351f3a6a95205a1499fd68b79fc3d0b9d19 Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=32404a33a03747951daafde164e3b14464c28fe9 commit 32404a33a03747951daafde164e3b14464c28fe9 Author: Allan McRae <allan@archlinux.org> Date: Thu Dec 18 11:01:43 2014 +1000 Label CVE-2014-9402 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d2a6f3a27b791d91beec2ea91f293ec898080904 commit d2a6f3a27b791d91beec2ea91f293ec898080904 Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=39700792d4224af99ab52ea26e98a0a2a2ed6ac6 commit 39700792d4224af99ab52ea26e98a0a2a2ed6ac6 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5cefe3fc8f35b50eb84cbb740268539a40651173 commit 5cefe3fc8f35b50eb84cbb740268539a40651173 Author: Allan McRae <allan@archlinux.org> Date: Sat Jun 21 17:23:55 2014 +1000 Mention CVE-2014-4043 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eece504424b59a1d8de7b4da9c64e24acaa6fbe0 commit eece504424b59a1d8de7b4da9c64e24acaa6fbe0 Author: Florian Weimer <fweimer@redhat.com> Date: Wed Jun 11 23:12:52 2014 +0200 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dcf0cce30d91100005e9aeb002096236325648fb commit dcf0cce30d91100005e9aeb002096236325648fb Author: Florian Weimer <fweimer@redhat.com> Date: Mon May 12 15:24:12 2014 +0200 _nl_find_locale: Improve handling of crafted locale names [BZ #17137] Prevent directory traversal in locale-related environment variables (CVE-2014-0475). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a5da5d74ff2e0a6ee267f283be8dbccc92cec59a commit a5da5d74ff2e0a6ee267f283be8dbccc92cec59a Author: Florian Weimer <fweimer@redhat.com> Date: Tue Aug 26 19:38:59 2014 +0200 __gconv_translit_find: Disable function [BZ #17187] This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6cbfc1fa2c64cad3c599f419dd154cec5af23cc commit e6cbfc1fa2c64cad3c599f419dd154cec5af23cc Author: Florian Weimer <fweimer@redhat.com> Date: Wed Sep 3 19:45:43 2014 +0200 CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fa7cc069f4eb29c00ec3a833d73ec4a473b11c8a commit fa7cc069f4eb29c00ec3a833d73ec4a473b11c8a Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 29 13:56:44 2014 -0500 PowerPC: Fix gprof entry point for LE This patch fixes the ELFv2 gprof entry point since the ABI does not define function descriptors. It fixes BZ#17213. This is a backport of a53fbd8e6cd2f69bdfa3431d616a5f332aea6664. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3c640c4acb9bc2c2cc7fa77d5ce1254953761dc1 commit 3c640c4acb9bc2c2cc7fa77d5ce1254953761dc1 Author: Alan Modra <amodra@gmail.com> Date: Mon Jul 14 21:14:50 2014 +0930 Correct DT_PPC64_NUM [BZ #17153] * elf/elf.h (DT_PPC64_NUM): Correct value. * NEWS: Add to fixed bug list. This is a backport of f6c44d475104e931bab2b4ffa499961088de673c. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=957afa3407c426969eaaa348981b9648d5191ae2 commit 957afa3407c426969eaaa348981b9648d5191ae2 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:54:09 2014 -0500 PowerPC: Cleanup powerpc memmove Now that MEMCPY_OK_FOR_FWD_MEMMOVE should be define on memcopy.h there is no need to specialized powerpc memmove implementation. This patch moves the define set to powerpc memcopy and cleanup its definition on powerpc code. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8d9513a103bdd202ffa4884bdedc2c3c0dbab210 commit 8d9513a103bdd202ffa4884bdedc2c3c0dbab210 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:49:54 2014 -0500 PowerPC: Fix compiler warnings This patch fixes some compiler due trailing data in #undef directives and due missing prototypes. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b00ec143897f076ecbcedc7369b4b74e0c7f6d14 commit b00ec143897f076ecbcedc7369b4b74e0c7f6d14 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jul 8 08:35:44 2014 -0500 PowerPC: Add ifunc tests for memmove This patch add the missing ifunc tests definition for memmove ppc32 optimization patch (commit 07aedd7). This is a backport of 91f4b564bd7bedcd93e7047cad570ce292d6330b. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=565e3d6c8230affd7089bf5ebfcebbf72f32a27c commit 565e3d6c8230affd7089bf5ebfcebbf72f32a27c Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Jun 25 11:54:31 2014 -0500 PowerPC: Align power7 memcpy using VSX to quadword This patch changes power7 memcpy to use VSX instructions only when memory is aligned to quardword. It is to avoid unaligned kernel traps on non-cacheable memory (for instance, memory-mapped I/O). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6fae3527af330c32399e3a4cdfac3958fc440eb8 commit 6fae3527af330c32399e3a4cdfac3958fc440eb8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jun 24 08:47:52 2014 -0500 PowerPC: optimized memmove for POWER7/PPC32 This patch adds a optimized memmove for power7 by using the optimized power7 memcpy for forward copying. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5d55f9b05ecb85b7a543f641829479cfb081f380 commit 5d55f9b05ecb85b7a543f641829479cfb081f380 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jun 20 12:55:16 2014 -0500 PowerPC: optimized memmove for POWER7/PPC64 This patch adds an optimized memmove optimization for POWER7/powerpc64. Basically the idea is to use the memcpy for POWER7 on non-overlapped memory regions and a optimized backward memcpy for memory regions that overlap (similar to the idea of string/memmove.c). The backward memcpy algorithm used is similar the one use for memcpy for POWER7, with adjustments done for alignment. The difference is memory is always aligned to 16 bytes before using VSX/altivec instructions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dde00e9914370ddd90c9bbc4f3f0e455efae4b47 commit dde00e9914370ddd90c9bbc4f3f0e455efae4b47 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Jun 24 06:42:31 2014 -0500 PowerPC: memmove default implementation cleanup This patch removes the powerpc specific logic in memmove and instead include default implementation with MEMCPY_OK_FOR_FWD_MEMMOVE defined. This lead in a increase performance, since the constraints to use memcpy in powerpc code are too restrictive and memcpy can be used for any forward memmove. This is a backport of d6f68bbef4427850c2901728a1d13efc0e687297. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9841a0850ed3be4310ec6b49c3349e39a6f0f481 commit 9841a0850ed3be4310ec6b49c3349e39a6f0f481 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Wed Jun 11 22:21:20 2014 -0500 PowerPC: strcat optimization for PPC64/POWER7 This patch adds an ifunc power7 strcat symbol that uses the logic on sysdeps/powerpc/strcat.c but call power7 strlen/strcpy symbols instead of default ones. This is a backport of bc8ea38590070604006399e42469087e943fc8ec. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ded8852b37f673b8e66163b44f70504dc5af0985 commit ded8852b37f673b8e66163b44f70504dc5af0985 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Jun 23 09:38:47 2014 -0500 PowerPC: sync hwcap.h capabilities Linux commit dd58a092c4202f2bd490adab7285b3ff77f8e467 added the PPC_FEATURE2_VEC_CRYPTO auvx capability to indicate whether to hardware supports vector crypto hardware instructions. This patch adds its definition to powerpc hwcap bits. This is a backport of db22400947e1c82153e5270d23fed53fc1e3a659. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7e986751f5c05f3363c01c717972f87a681da0d0 commit 7e986751f5c05f3363c01c717972f87a681da0d0 Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Tue Jun 17 08:46:25 2014 -0500 PowerPC: Fix nearbyintl failure for few inputs This patch fixes few failures in nearbyintl() where the fraction part is close to 0.5.i The new tests added report few extra failures in nearbyint_downward and nearbyint_towardzero which is a known issue. Fixes #17031. This is a backport of 754c5a08aacb44895d1ab97c553ce424eb43f761. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2289a56644fc05786e2d5637c76d47afea7d38b9 commit 2289a56644fc05786e2d5637c76d47afea7d38b9 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Fri Jun 6 07:56:07 2014 -0500 PowerPC: Optimized strcmp for PPC64/POWER7 Optimization is achieved on 8 byte aligned strings with double word comparison using cmpb instruction. On unaligned strings loop unrolling is applied for Power7 gain. It is a backport of e23d3d2690bf63207b1a47e83a94693daebbbfe5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=010c023685495f4cd907b7bf7d15375edcbe1ead commit 010c023685495f4cd907b7bf7d15375edcbe1ead Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Jun 6 09:37:07 2014 -0500 PowerPC: Fix optimized strncat strlen call This patch fixes the optimized ppc64/power7 strncat strlen call for static build without ifunc enabled. The strlen symbol to call in such situation is just strlen, instead of __GI_strlen (since the __GI_ alias is just created for shared objects). It is a backport of ed36bfa18faf9be457575568e64b8409e46caa22. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f0aba1acab171bd853905b66c551336aa0adcf9 commit 6f0aba1acab171bd853905b66c551336aa0adcf9 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Apr 8 17:25:14 2014 -0500 PowerPC: Fix --disable-multi-arch builds This patch fixes some powerpc32 and powerpc64 builds with --disable-multi-arch option along with different --with-cpu=powerN. It cleanups the Implies directories by removing the multiarch folder for non multiarch config and also fixing two assembly implementations: powerpc64/power7/strncat.S that is calling the wrong strlen; and power8/fpu/s_isnan.S that misses the hidden_def and weak_alias directives. It is a backport of de21c33c068c8e39afb5711613a7c083c11ce6a1. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e40df8c4677611afc48601472675593dfd087e4b commit e40df8c4677611afc48601472675593dfd087e4b Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu May 22 14:48:38 2014 -0500 PowerPC: Remove 64 bits instructions in PPC32 code This patch replaces the insrdi by insrwi in powerpc32 assembly. It is a backport of d298c41635ce7f2dc7c3eccc842fe3aa754c0c8e. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a448439dfffc0878121e0941be9717e05786b1fe commit a448439dfffc0878121e0941be9717e05786b1fe Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu May 22 07:53:44 2014 -0500 PowerPC: Fix memchr ifunc hidden symbol for PPC32 This patch fixes a similar issue to 736c304a1ab4cee36a2f3343f1698bc0abae4608, where for PPC32 if the symbol is defined as hidden (memchr) then compiler will create a local branc (symbol@local) and the linker will not create a required PLT call to make the ifunc work. It changes the default hidden symbol (__GI_memchr) to default memchr symbol for powerpc32 (__memchr_ppc32). Backport of 3d2badacf185fac740a2992240a817fb2ca325af. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c725f80591aa98c5c0270feb80e857c5943c861a commit c725f80591aa98c5c0270feb80e857c5943c861a Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon May 19 17:56:55 2014 -0500 PowerPC: Fix multiarch hypotf PPC64 path This patch moves the hypotf multiarch implementation to correct path. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1db8c8c873e6112ee4ecddf1eff54f4abaab91a7 commit 1db8c8c873e6112ee4ecddf1eff54f4abaab91a7 Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Mon May 5 19:10:45 2014 -0500 PowerPC: strncpy/stpncpy optimization for PPC64/POWER7 The optimization is achieved by following techniques: > data alignment [gain from aligned memory access on read/write] > POWER7 gains performance with loop unrolling/unwinding [gain by reduction of branch penalty]. > zero padding done by calling optimized memset https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=08111251bbd7275024d9c945f442f61b06d98910 commit 08111251bbd7275024d9c945f442f61b06d98910 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri May 2 12:00:36 2014 -0500 PowerPC: ifunc improvement for internal calls This patch changes de default symbol redirection for internal call of memcpy, memset, memchr, and strlen to the IFUNC resolved ones. The performance improvement is noticeable in algorithms that uses these symbols extensible, like the regex functions. This is a backport of 19c4bec0f43599eecc2f32de96ae179cd7d64053. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a8050d789589b73e7908b806d5c929facf76cc6b commit a8050d789589b73e7908b806d5c929facf76cc6b Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 16 19:33:32 2014 +0930 Correct IBM long double frexpl. Besides fixing the bugzilla, this also fixes corner-cases where the high and low double differ greatly in magnitude, and handles a denormal input without resorting to a fp rescale. [BZ #16740] [BZ #16619] * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Rewrite. * math/libm-test.inc (frexp_test_data): Add tests. Backport of aa5f0ff11ad2cc85277c64cf65c723a9664e1149 and 9860b0450275ad2b69cb9360fd01d5c122a65fc5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=154d4d95f48061d5ab890c85b6015221c1accc6e commit 154d4d95f48061d5ab890c85b6015221c1accc6e Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Sun Apr 6 14:50:11 2014 -0500 PowerPC: Fix nearbyint/nearbyintf result for FE_DOWNWARD This patch fixes the powerpc32 optimized nearbyint/nearbyintf bogus results for FE_DOWNWARD rounding mode. This is due wrong instructions sequence used in the rounding calculation (two subtractions instead of adition and a subtraction). Fixes BZ#16815. Backport of 8bd70862e11023e7f827f240a5a214f847ae982d. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e266b71770050a4d0cb276f4afea1c5b05215184 commit e266b71770050a4d0cb276f4afea1c5b05215184 Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:46:19 2014 +1030 Correct IBM long double nextafterl. Fix for values near a power of two, and some tidies. [BZ #16739] * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Correct output when value is near a power of two. Use int64_t for lx and remove casts. Use decimal rather than hex exponent constants. Don't use long double multiplication when double will suffice. * math/libm-test.inc (nextafter_test_data): Add tests. * NEWS: Add 16739 and 16786 to bug list. Backport of b0abbc21034f0e5edc49023d8fda0616173faf17. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b23fc92895aff0ce3d3134a91adaa253bffd187a commit b23fc92895aff0ce3d3134a91adaa253bffd187a Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:42:27 2014 +1030 Correct prefetch hint in power7 memrchr. Typo fix. * sysdeps/powerpc/powerpc64/power7/memrchr.S: Correct stream hint. Backport of af6b17973cbc07ac06cfb40eeab5cc2391fb489a. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=acd56f757b4e5ab8737b9564bd7a4ad1009acd8d commit acd56f757b4e5ab8737b9564bd7a4ad1009acd8d Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 2 13:40:21 2014 +1030 Fix reference to toc symbol. https://sourceware.org/ml/binutils/2014-03/msg00033.html removes the "magic" treatment of symbols defined in a .toc section. * sysdeps/powerpc/powerpc64/start.S: Add @toc to toc symbol reference. Backport of 483818d768ed99a5edf4114298a75ebedaee8d5c. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fd5100c480beef3d36c4bf74b6a23529695d036c commit fd5100c480beef3d36c4bf74b6a23529695d036c Author: Alan Modra <amodra@gmail.com> Date: Tue Apr 1 14:07:42 2014 +1030 Fix s_copysign stack temp for PowerPC64 ELFv2 [BZ #16786] * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Don't trash stack. Backport of c859b32e9d76afe8a3f20bb9528961a573c06937. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a51aafa398ed7dd2a0a846c1b2ed8a37909609eb commit a51aafa398ed7dd2a0a846c1b2ed8a37909609eb Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 31 08:07:55 2014 -0500 PowerPC: Fix little endian enconding for mfvsrd This patch fixes the MFVSRD_R3_V1 macro that encodes 'mfvsrd r3,vs1' (to support old binutils) for little endian. Backport of 757d9dd5c3efa56fac75965abc014faaae7b7895. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=62caa3eed2a154a61a01df3a5f3dde3ff400f4d4 commit 62caa3eed2a154a61a01df3a5f3dde3ff400f4d4 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Mar 20 15:28:07 2014 -0500 PowerPC: optimized strpbrk for POWER7 This patch add an optimized strpbrk for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and memory clear using VSX instructions. Backport of 6f23d0939e9651d8ac3c77a835fb6464b35a1dc4 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c0afc58657f482f4c31ccade06e7b059e761186c commit c0afc58657f482f4c31ccade06e7b059e761186c Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Mar 20 11:24:52 2014 -0500 PowerPC: optimized strcspn for PPC64/POWER7 This patch add a optimized strcspn for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and align stack memory to table to 16 bytes (so VSX clean can ran without alignment issues). Backport of 6eaf95cbfa0031ea267682dc2c9c17ed3e3dc167 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ac6d8452be2d582e4a2b14525c839c71b9351991 commit ac6d8452be2d582e4a2b14525c839c71b9351991 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:49:45 2014 -0500 PowerPC: remove wrong roundl implementation for PowerPC64 The roundl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_roundl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_roundl.c instead fixes the failing math. This fixes 16707. Backport of c7de50250367167d8c9f35594b264f6a0af8dd0c https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c5ac422010eb6b384c3b4e45ab0049172f0ad688 commit c5ac422010eb6b384c3b4e45ab0049172f0ad688 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:27:52 2014 -0500 PowerPC: remove wrong nearbyintl implementation for PPC64 The nearbyintl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c instead fixes the failing math. Fixes BZ#16706. Backport of 98fb27a373f37554232e0060eef1a5bb00a07eb0 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7986a2d12b7ea0653f0366200c703a3905edffd9 commit 7986a2d12b7ea0653f0366200c703a3905edffd9 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 07:35:43 2014 -0500 PowerPC: remove wrong ceill implementation for PowerPC64 The ceill assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_ceill.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_ceill.c instead fixes the failing math. Fixes BZ#16701. Backport of 374f7f61214967bb4e2257695aeeeecc2a77f369 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a56198dbb21767bde0003d3062d5ec7a8e1279f1 commit a56198dbb21767bde0003d3062d5ec7a8e1279f1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 14 12:15:40 2014 -0500 Add truncl tests related to BZ#16414 Backport of 4655c291d1808c35b7c54236ae62be7a3aaa0a2d https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a52b3f7e4c4de8705370adda4b390293780dc768 commit a52b3f7e4c4de8705370adda4b390293780dc768 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Mar 12 08:55:50 2014 -0500 PowerPC: Fix bzero definition for static libc for PPC32 This patch fixes an issue for powerpc32-fpu static build which fails with an 'bzero' undefined reference. This patch adds bzero ifunc selector for static builds and fixes the '__bzero_ppc' reference to default memset symbol (since static memset build does not provide ifunc selector). Fixes BZ#16689. Backport of dd3946c615184e1957a0cb09352cac72be5d6d5b. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=09e09c2872ab52c8a42b907105343520019ca1d1 commit 09e09c2872ab52c8a42b907105343520019ca1d1 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Mar 11 16:17:50 2014 -0500 PowerPC: Fix strspn for static build This patch makes the strspn ifunc selector build for static builds. This is a backport of 27c7220a483bda576533aa9a0a9b42175644b1a1 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f510d35c58d16c32ce988d053c9a525b8e38fe47 commit f510d35c58d16c32ce988d053c9a525b8e38fe47 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 10 15:26:20 2014 -0500 PowerPC: Fix bzero definition for static libc for PPC64 This patch fixes an issue for powerpc64[le] static build where __bzero is definied in multiple places (memset-ppc64.o and bzero.o). It is now defined only in bzero.o and memset-ppc64.o only defined __bzero_ppc for both dynamic and static library. Fixes BZ#16683. Backport of 4facea473059914983b7da8dd654c06b8e3dcc41 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=afd75351c2f3cae4a2daf88c50faad889e3a0f2b commit afd75351c2f3cae4a2daf88c50faad889e3a0f2b Author: Vidya Ranganathan <vidya@linux.vnet.ibm.com> Date: Mon Mar 10 12:20:36 2014 -0400 PowerPC: strspn optimization for PPC64/POWER7 The optimization is achieved by following techniques: > hashing of needle. > hashing avoids scanning of duplicate entries in needle across the string. > initializing the hash table with Vector instructions (VSX) by quadword access. > unrolling when scanning for character in string across hash table. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e5829d82c88117c9f4752cedfefc8516cb9ffdf7 commit e5829d82c88117c9f4752cedfefc8516cb9ffdf7 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Mar 7 06:09:47 2014 -0600 PowerPC: strncat optimization for PPC64 The optimization is achieved by following techniques: 1. Doubleword aligned memory access and compares using cmpb instruction. 2. Loop unrolling for byte load/store. 3. CPU pre-fetch to avoid cache miss. Backport of ba9cc0714e58a9e8fa73cf6b0e205cbf1e6b71f2 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e032058ea756e396c4ed1395a44d8b321e370b2f commit e032058ea756e396c4ed1395a44d8b321e370b2f Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Date: Mon Mar 3 08:06:41 2014 -0600 PowerPC: strrchr optimization for POWER7/PPC64 This patch optimizes strrchr() for ppc64. It uses aligned memory access along with cmpb instruction and CPU prefetch to avoid cache misses for speed improvement. Backport of c7debbdfacbef150aaf9113eb05ccaf2b9e7af6c https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=54dd35c59cda5f59c2f3ae783468da4b94f30dff commit 54dd35c59cda5f59c2f3ae783468da4b94f30dff Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Feb 17 10:44:08 2014 -0600 PowerPC: llround/llroundf POWER8 optimization This patch add a optimized llround/llroundf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport fe13a20c37578f08ce393ccaeb45caeb48815ca5 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b34f8e9fcd1274e69a9a59a28c270e2cada39c95 commit b34f8e9fcd1274e69a9a59a28c270e2cada39c95 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Tue Feb 18 09:29:29 2014 -0500 PowerPC: llrint/llrintf POWER8 optimization This patch add a optimized llrint/llrintf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 1ad8950a3ea4056ed343d681b5146f4b4aa27e10 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c3241bcd73c47d2bcd2a5ffe84a21d4853c8c938 commit c3241bcd73c47d2bcd2a5ffe84a21d4853c8c938 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:46:46 2014 -0600 PowerPC: Optimized finite/finitef for POWER8 This patch add a optimized finite/finitef implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of cac626d60a863e48ab75417064984769e58c5719. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1cd3b05dda2dab30cb7658193cb1af8f594f52f3 commit 1cd3b05dda2dab30cb7658193cb1af8f594f52f3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:45:41 2014 -0600 PowerPC: Optimized isinf/isinff for POWER8 This patch add a optimized isinf/isinff implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 4393fc119c34e97519b9b7a4fc94066b283be452 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=65c8daedb68b74eae860f91dca226215cd80e348 commit 65c8daedb68b74eae860f91dca226215cd80e348 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Feb 27 09:43:51 2014 -0600 PowerPC: Optimized isnan/isnanf for POWER8 This patch add a optimized isnan/isnanf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move. Backport of 487972aea52004f604c2878c8c9d3e77670f2c32 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=55e71ccf31c29a7839344f03e0a7437ea0f5f211 commit 55e71ccf31c29a7839344f03e0a7437ea0f5f211 Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> Date: Fri Nov 15 07:44:20 2013 -0600 Partially revert commit 2663b74f8103a2a8a46b4896439b7a452480fc7c This change is necessary in order to avoid the issue documented at http://sourceware.org/ml/libc-alpha/2013-05/msg00350.html. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fbed4f13980bf4ebd7df59b0e52bd2a16875f0db commit fbed4f13980bf4ebd7df59b0e52bd2a16875f0db Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Nov 15 07:42:33 2013 -0600 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, ibm/2.16/master has been created at 627eabb20f2b70faa3698e2c0124094c6d51af8e (commit) - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=627eabb20f2b70faa3698e2c0124094c6d51af8e commit 627eabb20f2b70faa3698e2c0124094c6d51af8e Author: Paul Pluzhnikov <ppluzhnikov@google.com> Date: Fri Feb 6 00:30:42 2015 -0500 CVE-2015-1472: wscanf allocates too little memory BZ #16618 Under certain conditions wscanf can allocate too little memory for the to-be-scanned arguments and overflow the allocated buffer. The implementation now correctly computes the required buffer size when using malloc. A regression test was added to tst-sscanf. Conflicts: ChangeLog NEWS stdio-common/tst-sscanf.c https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ec36394743c15fedca294219f2254b180c4e327c commit ec36394743c15fedca294219f2254b180c4e327c Author: Andreas Schwab <schwab@suse.de> Date: Mon Jan 21 17:41:28 2013 +0100 Fix parsing of numeric hosts in gethostbyname_r Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20ac5d44837b82c064dfabd3646ec1f4f6826263 commit 20ac5d44837b82c064dfabd3646ec1f4f6826263 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Nov 19 13:01:43 2012 +0530 Return EAI_SYSTEM if we're out of file descriptors Resolves BZ #14719. Conflicts: ChangeLog NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dfc25d72984eb5a3354e104612d0ca0129af3f98 commit dfc25d72984eb5a3354e104612d0ca0129af3f98 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Sep 25 13:43:04 2013 -0500 PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1442655ba419867ce1a045a97cdd7904ac1ad516 commit 1442655ba419867ce1a045a97cdd7904ac1ad516 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Jan 20 12:29:51 2014 -0600 PowerPC: Fix gettimeofday ifunc selection The IFUNC selector for gettimeofday runs before _libc_vdso_platform_setup where __vdso_gettimeofday is set. The selector then sets __gettimeofday (the internal version used within GLIBC) to use the system call version instead of the vDSO one. This patch changes the check if vDSO is available to get its value directly instead of rely on __vdso_gettimeofday. This patch changes it by getting the vDSO value directly. It fixes BZ#16431. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1bdb6daceb10307543599df3b118afd2109d2ec8 commit 1bdb6daceb10307543599df3b118afd2109d2ec8 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Jan 16 06:53:18 2014 -0600 PowerPC: Fix ftime gettimeofday internal call returning bogus data This patches fixes BZ#16430 by setting a different symbol for internal GLIBC calls that points to ifunc resolvers. For PPC32, if the symbol is defined as hidden (which is the case for gettimeofday and time) the compiler will create local branches (symbol@local) and linker will not create PLT calls (required for IFUNC). This will leads to internal symbol calling the IFUNC resolver instead of the resolved symbol. For PPC64 this behavior does not occur because a call to a function in another translation unit might use a different toc pointer thus requiring a PLT call. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e3008132765936162552b15a77fe348c01074310 commit e3008132765936162552b15a77fe348c01074310 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Thu Nov 7 05:34:22 2013 -0600 PowerPC: Fix vDSO missing ODP entries This patch fixes the vDSO symbol used directed in IFUNC resolver where they do not have an associated ODP entry leading to undefined behavior in some cases. It adds an artificial OPD static entry to such cases and set its TOC to non 0 to avoid triggering lazy resolutions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6ff69e1eb81719ee907642f615cef889d5bf8b2c commit 6ff69e1eb81719ee907642f615cef889d5bf8b2c Author: Carlos O'Donell <carlos@redhat.com> Date: Wed Nov 19 11:44:12 2014 -0500 CVE-2014-7817: wordexp fails to honour WRDE_NOCMD. The function wordexp() fails to properly handle the WRDE_NOCMD flag when processing arithmetic inputs in the form of "$((... ``))" where "..." can be anything valid. The backticks in the arithmetic epxression are evaluated by in a shell even if WRDE_NOCMD forbade command substitution. This allows an attacker to attempt to pass dangerous commands via constructs of the above form, and bypass the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD in exec_comm(), the only place that can execute a shell. All other checks for WRDE_NOCMD are superfluous and removed. We expand the testsuite and add 3 new regression tests of roughly the same form but with a couple of nested levels. On top of the 3 new tests we add fork validation to the WRDE_NOCMD testing. If any forks are detected during the execution of a wordexp() call with WRDE_NOCMD, the test is marked as failed. This is slightly heuristic since vfork might be used in the future, but it provides a higher level of assurance that no shells were executed as part of command substitution with WRDE_NOCMD in effect. In addition it doesn't require libpthread or libdl, instead we use the public implementation namespace function __register_atfork (already part of the public ABI for libpthread). Tested on x86_64 with no regressions. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3ded3d365f0237e92e8af90c878b233f265d7b4a commit 3ded3d365f0237e92e8af90c878b233f265d7b4a Author: Allan McRae <allan@archlinux.org> Date: Thu Dec 18 11:01:43 2014 +1000 Label CVE-2014-9402 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7093fd0fedd8a0b4ed5b01347e3798219ba22ec commit c7093fd0fedd8a0b4ed5b01347e3798219ba22ec Author: Florian Weimer <fweimer@redhat.com> Date: Mon Dec 15 17:41:13 2014 +0100 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c9b43ec3890d5c750a5127a543a55cd94aa73c94 commit c9b43ec3890d5c750a5127a543a55cd94aa73c94 Author: Jeff Law <law@redhat.com> Date: Mon Dec 15 10:09:32 2014 +0100 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] A larger number of format specifiers coudld cause a stack overflow, potentially allowing to bypass _FORTIFY_SOURCE format string protection. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b6ac4b1093333f364698ca3bb812c80b11c2f77 commit 3b6ac4b1093333f364698ca3bb812c80b11c2f77 Author: Allan McRae <allan@archlinux.org> Date: Sat Jun 21 17:23:55 2014 +1000 Mention CVE-2014-4043 in NEWS https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f7865ec21e8ad32929509796497fa3b44c3ef826 commit f7865ec21e8ad32929509796497fa3b44c3ef826 Author: Florian Weimer <fweimer@redhat.com> Date: Thu Jan 15 15:16:54 2015 -0500 posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048) POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7a91d241b095855e06e0bd00287968df2f6d87e commit c7a91d241b095855e06e0bd00287968df2f6d87e Author: Florian Weimer <fweimer@redhat.com> Date: Mon May 12 15:24:12 2014 +0200 _nl_find_locale: Improve handling of crafted locale names [BZ #17137] Prevent directory traversal in locale-related environment variables (CVE-2014-0475). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=588b214bc7fa3e54d6b679ed4b755e6d1310e61d commit 588b214bc7fa3e54d6b679ed4b755e6d1310e61d Author: Florian Weimer <fweimer@redhat.com> Date: Tue Aug 26 19:38:59 2014 +0200 __gconv_translit_find: Disable function [BZ #17187] This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bd51e93f9305e37aa17e08dbdb86a2e146c09eff commit bd51e93f9305e37aa17e08dbdb86a2e146c09eff Author: Florian Weimer <fweimer@redhat.com> Date: Wed Sep 3 19:45:43 2014 +0200 CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325] These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97ef0b2223e10fe3053494defd8a008d7dd9d6d8 commit 97ef0b2223e10fe3053494defd8a008d7dd9d6d8 Author: Will Newton <will.newton@linaro.org> Date: Fri Sep 13 09:26:02 2013 +0100 Add CVE-2013-4332 to NEWS. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 commit ccb8f6bab96cfcc7aedf5cd0d1946f26b028d733 Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 12:54:29 2013 +0100 malloc: Check for integer overflow in memalign. A large bytes parameter to memalign could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15857] * malloc/malloc.c (__libc_memalign): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f1292792799a507711ce24b497e40f8fea8f9c9c commit f1292792799a507711ce24b497e40f8fea8f9c9c Author: Will Newton <will.newton@linaro.org> Date: Fri Aug 16 11:59:37 2013 +0100 malloc: Check for integer overflow in valloc. A large bytes parameter to valloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15856] * malloc/malloc.c (__libc_valloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b1e934aed5170eb8948e0f3c6618c9431d6810ad commit b1e934aed5170eb8948e0f3c6618c9431d6810ad Author: Will Newton <will.newton@linaro.org> Date: Mon Aug 12 15:08:02 2013 +0100 malloc: Check for integer overflow in pvalloc. A large bytes parameter to pvalloc could cause an integer overflow and corrupt allocator internals. Check the overflow does not occur before continuing with the allocation. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> [BZ #15855] * malloc/malloc.c (__libc_pvalloc): Check the value of bytes does not overflow. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bcd619797e785f90cc9fd67208267c26c8e4b40d commit bcd619797e785f90cc9fd67208267c26c8e4b40d Author: Florian Weimer <fweimer@redhat.com> Date: Fri Aug 16 09:38:52 2013 +0200 CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode member. * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode member. * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. Return delayed error code. Remove GETDENTS_64BIT_ALIGNED conditional. * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define GETDENTS_64BIT_ALIGNED. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * manual/filesys.texi (Reading/Closing Directory): Document ENAMETOOLONG return value of readdir_r. Recommend readdir more strongly. * manual/conf.texi (Limits for Files): Add portability note to NAME_MAX, PATH_MAX. (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6fd8e941423354e6c7a951d37a60d2f1424d568e commit 6fd8e941423354e6c7a951d37a60d2f1424d568e Author: Carlos O'Donell <carlos@redhat.com> Date: Mon Sep 23 00:52:09 2013 -0400 BZ #15754: CVE-2013-4788 The pointer guard used for pointer mangling was not initialized for static applications resulting in the security feature being disabled. The pointer guard is now correctly initialized to a random value for static applications. Existing static applications need to be recompiled to take advantage of the fix. The test tst-ptrguard1-static and tst-ptrguard1 add regression coverage to ensure the pointer guards are sufficiently random and initialized to a default value. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a243b1a0797180e142d525d1325a173c758c3714 commit a243b1a0797180e142d525d1325a173c758c3714 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:24:30 2013 +0530 Check for integer overflow in cache size computation in strcoll strcoll is implemented using a cache for indices and weights of collation sequences in the strings so that subsequent passes do not have to search through collation data again. For very large string inputs, the cache size computation could overflow. In such a case, use the fallback function that does not cache indices and weights of collation sequences. Fixes CVE-2012-4412. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c1132021659d22753104762a074d6339ae6cbd01 commit c1132021659d22753104762a074d6339ae6cbd01 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Mon Sep 23 11:20:02 2013 +0530 Fall back to non-cached sequence traversal and comparison on malloc fail strcoll currently falls back to alloca if malloc fails, resulting in a possible stack overflow. This patch implements sequence traversal and comparison without caching indices and rules. Fixes CVE-2012-4424. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2dc811b78adc97b5f5d951716df30053a24da1a1 commit 2dc811b78adc97b5f5d951716df30053a24da1a1 Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Tue Aug 20 08:40:05 2013 +0530 Simplify strcoll implementation Break up strcoll into simpler functions so that the logic is easier to follow and maintain. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9b951f59aa3c2f2d58d398aab146951216f9ff8d commit 9b951f59aa3c2f2d58d398aab146951216f9ff8d Author: Siddhesh Poyarekar <siddhesh@redhat.com> Date: Fri Oct 25 10:22:12 2013 +0530 Fix stack overflow due to large AF_INET6 requests Resolves #16072 (CVE-2013-4458). This patch fixes another stack overflow in getaddrinfo when it is called with AF_INET6. The AF_UNSPEC case was fixed as CVE-2013-1914, but the AF_INET6 case went undetected back then. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=302c61e2d3536a6ff99d518499771afd6a951b0c commit 302c61e2d3536a6ff99d518499771afd6a951b0c Author: Andreas Schwab <schwab@suse.de> Date: Tue Jan 29 14:45:15 2013 +0100 Fix buffer overrun in regexp matcher https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b7e0492e183efc24e5658c860ca5711e00524dd7 commit b7e0492e183efc24e5658c860ca5711e00524dd7 Author: Carlos O'Donell <carlos@redhat.com> Date: Fri Jul 19 02:42:03 2013 -0400 CVE-2013-2207, BZ #15755: Disable pt_chown. The helper binary pt_chown tricked into granting access to another user's pseudo-terminal. Pre-conditions for the attack: * Attacker with local user account * Kernel with FUSE support * "user_allow_other" in /etc/fuse.conf * Victim with allocated slave in /dev/pts Using the setuid installed pt_chown and a weak check on whether a file descriptor is a tty, an attacker could fake a pty check using FUSE and trick pt_chown to grant ownership of a pty descriptor that the current user does not own. It cannot access /dev/pts/ptmx however. In most modern distributions pt_chown is not needed because devpts is enabled by default. The fix for this CVE is to disable building and using pt_chown by default. We still provide a configure option to enable hte use of pt_chown but distributions do so at their own risk. Cherry-pick of e4608715e6e1dd2adc91982fd151d5ba4f761d69. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02a002fe9c0b65532643a88b01253e95ba8ba8c6 commit 02a002fe9c0b65532643a88b01253e95ba8ba8c6 Author: Jeff Law <law@redhat.com> Date: Wed Nov 28 14:12:28 2012 -0700 [BZ #14889] * sunrpc/rpc/svc.h (__svc_accept_failed): New prototype. * sunrpc/svc.c: Include time.h. (__svc_accept_failed): New function. * sunrpc/svc_tcp.c (rendezvous_request): If the accept fails for any reason other than EINTR, call __svc_accept_failed. * sunrpc/svc_udp.c (svcudp_recv): Similarly. * sunrpc/svc_unix.c (rendezvous_request): Similarly. Cherry-pick of 14bc93a967e62abf8cf2704725b6f76619399f83 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b498440aac70e994f32f45a31102964313af690 commit 3b498440aac70e994f32f45a31102964313af690 Author: Andreas Schwab <schwab@suse.de> Date: Wed Nov 28 10:24:06 2012 +0100 Properly handle indirect functions in ABI check on powerpc64 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8282b7f2aa6380e8a91515f748d4693d8151fc4f commit 8282b7f2aa6380e8a91515f748d4693d8151fc4f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Fri Apr 26 13:00:56 2013 -0500 PowerPC: modf optimization fix This patch fix the 3c0265394d9ffedff2b0de508602dc52e077ce5c commits by correctly setting minimum architecture for modf PPC optimization to power5+ instead of power5 (since only on power5+ round/ceil will be inline to inline assembly). https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f commit 17e599d2613c2a2e4cb6d5c3f9d5f626879aa63f Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 25 16:10:06 2013 -0500 PowerPC: modf optimization This patch implements modf/modff optimization for POWER by focus on FP operations instead of relying in integer ones. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=60dc6d12c5c61b05013cb15f63349dd3d343f26d commit 60dc6d12c5c61b05013cb15f63349dd3d343f26d Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Wed Mar 13 10:46:08 2013 -0300 PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall. Backport of d5e0b9bd6e296f3ec5263fa296d39f3fed9b8fa2. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cc328ae264f5b97d2811a95d84112bb1c6c7cae3 commit cc328ae264f5b97d2811a95d84112bb1c6c7cae3 Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com> Date: Mon Mar 4 22:02:41 2013 -0300 PowerPC: gettimeofday optimization by using IFUNC https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=36016f626e72f5d1cb6107deeab29768d82ff7e3 commit 36016f626e72f5d1cb6107deeab29768d82ff7e3 Merge: 4e1f97c 043c748 Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Mar 1 16:20:18 2013 -0600 Merge remote branch 'remotes/origin/release/2.16/master' into local_ibm_2.16 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4e1f97ccdcc257eba262667f7a3179a7d530330d commit 4e1f97ccdcc257eba262667f7a3179a7d530330d Author: Mike Frysinger <vapier@gentoo.org> Date: Wed Nov 28 23:04:32 2012 -0500 byteswap.h: fix gcc ver test for __builtin_bswap{32,64} The __builtin_bswap* functions were introduced in gcc-4.3, not gcc-4.2. Fix the __GNUC_PREREQ tests to reflect this. Otherwise trying to compile code with gcc-4.2 falls down: In file included from /usr/include/endian.h:60, from /usr/include/ctype.h:40, /usr/include/bits/byteswap.h: In function 'unsigned int __bswap_32(unsigned int)': /usr/include/bits/byteswap.h:46: error: '__builtin_bswap32' was not declared in this scope /usr/include/bits/byteswap.h: In function 'long long unsigned int __bswap_64(long long unsigned int)': /usr/include/bits/byteswap.h:110: error: '__builtin_bswap64' was not declared in this scope Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit c9d6789ebe028a260d3e5be0c26b7d02fdfe99fe) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=025b233a88a30f5f0474ff2c6051313eb33e5689 commit 025b233a88a30f5f0474ff2c6051313eb33e5689 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Nov 20 00:04:45 2012 +0000 Fix __bswap_64 return type in generic bits/byteswap.h. (cherry picked from commit ecd4caf9783c99fb068a100c35899a0c3a3c6d98) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2c739e2cffb65d80787cfa861f9f6c62de327ad6 commit 2c739e2cffb65d80787cfa861f9f6c62de327ad6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Oct 12 09:21:47 2012 -0700 Use __uint64_t in x86 __bswap_64 (cherry picked from commit d394eb742a3565d7fe7a4b02710a60b5f219ee64) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a24f8ac8e65b451efc81839dd653d0a0e95a23ab commit a24f8ac8e65b451efc81839dd653d0a0e95a23ab Author: Andreas Schwab <schwab@linux-m68k.org> Date: Tue May 1 17:10:10 2012 +0200 Fix missing _mcount@GLIBC_2.0 on powerpc32 (cherry picked from commit 261f485936b283f4327fc1f2fc8fd1705d805c12) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=94464655b576985fdd5f66f7f6126ee1f92a41cc commit 94464655b576985fdd5f66f7f6126ee1f92a41cc Author: Peter Bergner <bergner@vnet.ibm.com> Date: Fri Jul 6 13:24:49 2012 -0500 Add AT_PLATFORM env variable to ld.so to override auxv AT_PLATFORM. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d846920271a0f4dc54c0dbbd56998228e75e776c commit d846920271a0f4dc54c0dbbd56998228e75e776c Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com> Date: Fri Jul 6 13:03:09 2012 -0500 Remove assert() if DT_RUNPATH and DT_RPATH flags are found in ld.so. -----------------------------------------------------------------------
DNS response which triggers the bug, glibc-2.17-196.el7.x86_64 dig 4.0.41.198.in-addr.arpa. ANY ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> 4.0.41.198.in-addr.arpa. ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61532 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;4.0.41.198.in-addr.arpa. IN ANY ;; ANSWER SECTION: 4.0.41.198.in-addr.arpa. 900 IN PTR a.root-servers.net. ;; Query time: 30 msec ;; SERVER: 172.16.36.2#53(172.16.36.2) ;; WHEN: Thu Oct 18 09:33:48 EDT 2018 ;; MSG SIZE rcvd: 84
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via ac8060265bcaca61568ef3a20b9a0140a270af54 (commit) from 596cc360aa9f0484d6621fd9dfa5de83c3a24dc5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ac8060265bcaca61568ef3a20b9a0140a270af54 commit ac8060265bcaca61568ef3a20b9a0140a270af54 Author: Alexandra H�jkov� <ahajkova@redhat.com> Date: Fri Oct 19 13:30:44 2018 +0200 Add an additional test to resolv/tst-resolv-network.c Test for the infinite loop in getnetbyname, bug #17630. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ resolv/tst-resolv-network.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via b21abc069f58da3f8e556ec730f0a387cfc91f5f (commit) from 3e8d8dd5afba18a847ff7a80f473336f777cc329 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b21abc069f58da3f8e556ec730f0a387cfc91f5f commit b21abc069f58da3f8e556ec730f0a387cfc91f5f Author: Alexandra H�jkov� <ahajkova@redhat.com> Date: Fri Oct 19 13:30:44 2018 +0200 Add an additional test to resolv/tst-resolv-network.c Test for the infinite loop in getnetbyname, bug #17630. (cherry picked from commit ac8060265bcaca61568ef3a20b9a0140a270af54) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ resolv/tst-resolv-network.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.27/master has been updated via 1517dfb8aaaf25dfdb79bb3c8549bc997ae7319a (commit) from 1050634904b77d8563ffb1e7039095155ed466ef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1517dfb8aaaf25dfdb79bb3c8549bc997ae7319a commit 1517dfb8aaaf25dfdb79bb3c8549bc997ae7319a Author: Alexandra H�jkov� <ahajkova@redhat.com> Date: Fri Oct 19 13:30:44 2018 +0200 Add an additional test to resolv/tst-resolv-network.c Test for the infinite loop in getnetbyname, bug #17630. (cherry picked from commit ac8060265bcaca61568ef3a20b9a0140a270af54) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ resolv/tst-resolv-network.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.26/master has been updated via 27e46f5836d69c3e82442b1e3ac8a8b5e9ab12ce (commit) from fcd86c62538b465eaf002b0ed8981d00e10b649f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=27e46f5836d69c3e82442b1e3ac8a8b5e9ab12ce commit 27e46f5836d69c3e82442b1e3ac8a8b5e9ab12ce Author: Alexandra H�jkov� <ahajkova@redhat.com> Date: Fri Oct 19 13:30:44 2018 +0200 Add an additional test to resolv/tst-resolv-network.c Test for the infinite loop in getnetbyname, bug #17630. (cherry picked from commit ac8060265bcaca61568ef3a20b9a0140a270af54) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ resolv/tst-resolv-network.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-)