glibc/string
Adhemerval Zanella b224637928 Fix powerpc64/power7 memchr for large input sizes
Current optimized powercp64/power7 memchr uses a strategy to check for
p versus align(p+n) (where 'p' is the input char pointer and n the
maximum size to check for the byte) without taking care for possible
overflow on the pointer addition in case of large 'n'.

It was triggered by 3038145ca2 where default rawmemchr (used to
created ppc64 rawmemchr in ifunc selection) now uses memchr (p, c, (size_t)-1)
on its implementation.

This patch fixes it by implement a satured addition where overflows
sets the maximum pointer size to UINTPTR_MAX.

Checked on powerpc64le-linux-gnu.

	[BZ# 20971]
	* sysdeps/powerpc/powerpc64/power7/memchr.S (__memchr): Avoid
	overflow in pointer addition.
	* string/test-memchr.c (do_test): Add an argument to pass as
	the size on memchr.
	(test_main): Add check for SIZE_MAX.
2016-12-16 11:30:20 -02:00
..
bits Improve strtok and strtok_r performance. Instead of calling strpbrk which 2016-12-14 15:12:18 +00:00
Depend Update. 2001-03-19 21:40:15 +00:00
Makefile string: More tests for strcmp, strcasecmp, strncmp, strncasecmp 2016-08-26 14:28:46 +02:00
Versions Improve generic strcspn performance 2016-04-01 10:44:40 -03:00
_strerror.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-addsep.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-append.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-count.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-create.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-ctsep.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-delete.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-extract.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-insert.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-next.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-replace.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz-stringify.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
argz.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
basename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bcopy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug-envz1.c * string/Makefile (tests): Add bug-envz1. 2006-06-04 16:36:04 +00:00
bug-strcoll1.c Update. 2001-04-26 20:45:18 +00:00
bug-strcoll2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug-strncat1.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
bug-strpbrk1.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
bug-strspn1.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
bug-strtok1.c [BZ #2126] 2006-01-10 00:25:07 +00:00
byteswap.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bzero.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
endian.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
envz.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
envz.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ffs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ffsll.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
inl-tester.c Update. 1997-09-11 12:09:10 +00:00
memccpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memfrob.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memmem.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memmove.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memory.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mempcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memrchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memset.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
noinl-tester.c Update. 1997-09-16 00:42:43 +00:00
rawmemchr.c Improve generic rawmemchr for targets that don't have an 2016-12-14 13:16:13 +00:00
stpcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stpncpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
str-two-way.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stratcliff.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcasecmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcasecmp_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcasestr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strchrnul.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcoll.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcoll_l.c Bug 20729: Fix building with -Os. 2016-10-29 23:50:56 -04:00
strcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcspn.c Use PTR_ALIGN_DOWN on strcspn and strspn 2016-04-01 18:33:03 -03:00
strdup.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strerror.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strerror_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strfry.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
string-inlines.c Improve strtok and strtok_r performance. Instead of calling strpbrk which 2016-12-14 15:12:18 +00:00
string.h Correct comments in string.h re strcoll_l, strxfrm_l. 2016-11-16 14:18:32 -05:00
strings.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strlen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncase.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncase_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strndup.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strnlen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strpbrk.c Improve generic strpbrk performance 2016-04-01 10:44:45 -03:00
strrchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strsep.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strsignal.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strspn.c Use PTR_ALIGN_DOWN on strcspn and strspn 2016-04-01 18:33:03 -03:00
strstr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtok.c Improve strtok and strtok_r performance. Instead of calling strpbrk which 2016-12-14 15:12:18 +00:00
strtok_r.c Improve strtok and strtok_r performance. Instead of calling strpbrk which 2016-12-14 15:12:18 +00:00
strverscmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strxfrm.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strxfrm_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
swab.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-bcopy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-bzero.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-ffs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memccpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memchr.c Fix powerpc64/power7 memchr for large input sizes 2016-12-16 11:30:20 -02:00
test-memcmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memcpy.c Clear destination buffer updated by the previous run 2016-05-18 05:51:59 -07:00
test-memmem.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memmove.c Clear destination buffer updated by the previous run 2016-05-18 05:51:59 -07:00
test-mempcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memrchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-memset.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-rawmemchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-stpcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-stpncpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcasecmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcasestr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strchrnul.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strcspn.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-string.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strlen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strncasecmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strncat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strncmp.c Fix wide-char testsuite SIGBUS on platforms such as Sparc. 2016-08-02 17:46:58 -07:00
test-strncpy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strnlen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strpbrk.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strrchr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strspn.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-strstr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
testcopy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tester.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-bswap.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-cmp.c string: More tests for strcmp, strcasecmp, strncmp, strncasecmp 2016-08-26 14:28:46 +02:00
tst-endian.c S390: Fix build failure in test string/tst-endian.c with gcc 6. 2016-01-25 12:44:46 +01:00
tst-inlcall.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strcoll-overflow.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strfry.c * stdlib/random_r.c (__initstate_r): Don't use non-existing state. 2005-04-12 15:29:07 +00:00
tst-strlen.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-strtok.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-strtok_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strxfrm.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-strxfrm2.c Let 'make check subdirs=string' succeed even when it's invoked 2015-09-28 16:55:57 -04:00
tst-svc.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-svc.expect * string/strverscmp.c (__strverscmp): Fix last cleanups. 2009-04-07 06:51:59 +00:00
tst-svc.input * string/strverscmp.c (__strverscmp): Fix last cleanups. 2009-04-07 06:51:59 +00:00
tst-svc2.c [BZ #9893] 2009-03-14 23:57:33 +00:00
wordcopy.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xpg-strerror.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00