Merge "Admit to another LP32 bug." into main am: 4674a3fe36

Original change: https://android-review.googlesource.com/c/platform/bionic/+/2959270

Change-Id: I3928e3107bce86b10fd99d78678ec8f7bb8d406f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Elliott Hughes 2024-02-13 23:03:32 +00:00 committed by Automerger Merge Worker
commit e4066859e4

View file

@ -109,3 +109,15 @@ but 32-bit bionic's `pthread_mutex` is a total of 32 bits, leaving just
mutexes for tids that don't fit in 16 bits. This typically manifests as
a hang in `pthread_mutex_lock` if the libc startup code doesn't detect
this condition and abort.
## `getuid()` and friends wrongly set errno for very large results
This doesn't generally affect Android devices, because we don't have any
uids/gids/pids large enough, but 32-bit Android doesn't take into account
that functions like getuid() potentially have return values that cover the
entire 32-bit, and can't fail. This means that the usual "if the result is
between -1 and -4096, set errno and return -1" code is inappropriate for
these functions. Since LP32 is unlikely to be still supported long before
those limits could ever matter, although -- unlike the others in this
document -- this defect is actually fixable, it doesn't seem worth fixing.