History log of /bionic/libc/arch-arm/cortex-a15/bionic/string_copy.S
Revision Date Author Comments
fdfcfce7c6392d32f95a9f776ecd13da205b906c 24-Sep-2015 Christopher Ferris <cferris@google.com> Fix over read in strcpy/stpcpy/strcat.

This bug will happen when these circumstances are met:

- Destination address & 0x7 == 1, strlen of src is 11, 12, 13.
- Destination address & 0x7 == 2, strlen of src is 10, 11, 12.
- Destination address & 0x7 == 3, strlen of src is 9, 10, 11.
- Destination address & 0x7 == 4, strlen of src is 8, 9, 10.

In these cases, the dest alignment code does a ldr which reads 4 bytes,
and it will read past the end of the source. In most cases, this is
probably benign, but if this crosses into a new page it could cause a
crash.

Fix the labels in the cortex-a9 strcat.

Modify the overread test to vary the dst alignment to expost this bug.
Also, shrink the strcat/strlcat overread cases since the dst alignment
variation increases the runtime too much.

Bug: 24345899
Change-Id: Ib34a559bfcebd89861985b29cae6c1e47b5b5855
98d57c95bc7b0042d60b0f7f426ee40b60a67198 30-Sep-2014 Christopher Ferris <cferris@google.com> Add stpcpy assembler version.

For generic, continue to use the C version of the code.

Bug: 13746695

(cherry picked from commit 7d849ac378515efa1522e538e6e1d3b546cae97d)

Change-Id: Iae44785f37f9bb59103ab78fb9f74c92f8a95c7f
7d849ac378515efa1522e538e6e1d3b546cae97d 30-Sep-2014 Christopher Ferris <cferris@google.com> Add stpcpy assembler version.

For generic, continue to use the C version of the code.

Bug: 13746695
Change-Id: I77426a70b06131f2373bb51265bea1240bb3f101