-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix fortify error on Android Pie ('sendto: prevented 40-byte read from 24-byte buffer') #12334
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Closed
pullapprove
bot
requested review from
andy31415,
anush-apple,
balducci-apple,
bzbarsky-apple,
carol-apple,
cecille,
chrisdecenzo,
chulspro,
Damian-Nordic,
electrocucaracha,
emargolis,
franck-apple,
hawk248,
jelderton,
jepenven-silabs,
jmartinez-silabs,
kghost,
kpschoedel,
LuDuda,
mlepage-google,
mrjerryjohns,
msandstedt and
pan-apple
November 29, 2021 20:57
pullapprove
bot
requested review from
robszewczyk,
sagar-apple,
saurabhst,
selissia,
tecimovic,
turon,
vivien-apple,
wbschiller,
woody-apple and
yunhanw-google
November 29, 2021 20:57
PR #12334: Size comparison from 3db5731 to b9077d3 Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
andy31415
changed the title
Issues/12326
Fix fortify error on Android Pie ('sendto: prevented 40-byte read from 24-byte buffer')
Nov 29, 2021
andy31415
approved these changes
Nov 29, 2021
fast track - trivial change, affects android only which was explicitly tested. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When running CHIP on Android Pie, I'm hitting the following error:
I've traced this to the call
getifaddrs(&mAddrsList)
on https://github.com/project-chip/connectedhomeip/blob/master/src/inet/InetInterface.cpp#L653The implementation for this function (on Android) comes from:
https://github.com/project-chip/connectedhomeip/blob/master/src/inet/InetInterface.cpp#L54
I did NOT encounter this error on Android N. Incidentally, the Fortify check for
send()
/sendto()
was added in Android O: https://android.googlesource.com/platform/bionic/+/master/docs/status.mdUpon reviewing the implementation for
getifaddrs()
inthird_party/android/platform-libcore/android-platform-libcore/ifaddrs-android.h
(line 182), it looks like the size of the buffer is swollen by the padding and alignment macros.Incidentally, bionic has provided its own
<ifaddrs.h>
since at least Android L.Change overview
Removed #include of
android/libcore/ifaddrs-android.h
in favor of sysroot <ifaddrs.h>Testing
Tested on Android P using BLE commissioning for a matter-over-wifi device using both libcore/ifaddrs-android.h and native bionic ifaddrs.h.
On the former, the fortify check would fail and, with the latter, would pass.