Skip to content
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 attr read overflows #36003

Merged
merged 4 commits into from
Mar 5, 2025

Conversation

witowsg-amazon
Copy link
Contributor

@witowsg-amazon witowsg-amazon commented Oct 9, 2024

Fixes 34937

  • Prevent buffer overflows by blocking creation of dynamic endpoints with attributes that would overflow the static attribute buffer
  • Added additional sanity checks to block reads of attributes that would overflow the attribute reads; return RESOURCE_EXHAUSTED instead

Testing

  • Validated via manual tests (see below) and via required changes to unit tests that attempting to publish a dynamic endpoint with an attribute size that exceeds the value of ATTRIBUTE_LARGEST provided by the ZAP headers results in an error being returned and that endpoint not being published on the node.
  • Using manual tests (see below), validated that attempts to read data beyond the end of the attribute data buffer would result in an error being returned by the SDK

Manual Tests

Performed A/B testing on my devices and confirmed that the fix worked as expected. Specifically:
The way this bug manifested for me was that the buffer was defaulting to size 8, I'd send a read for some external attributes (these were 32 bytes) from one device running the SDK (local) to another (remote). On the remote, I'd fill the buffer + size provided to me by emberAfExternalAttributeReadCallback, this resulted in me unknowingly overflowing said buffer. Back on the local, after reading an external attribute, I'd try to subscribe to the parts list on the remote's EP0 and that would cause the remote's CHIP SDK to crash. After a bunch of painstaking debugging I finally traced it to the buffer overflow. These were my logs:

CHIP DMG: AttributeData=0xb23142b8,sizeof(attributeData)=8 // CHIP SDK layer, buffer is only 8 bytes
onExternalAttributeRead:buffer=0xb23142b8, maxReadLength=32  // my application layer, fills 32 bytes as told by the SDK
CHIP DMG: <RE> Sending report (payload has 41 bytes)...
// end of read

CHIP EM : >>> [E:60205r S:10395 M:134389711] (S) Msg RX from 1:01B98783B9C5A511 [5FCA] --- Type 0001:03 (IM:SubscribeRequest)
// ... omitted for brevity
CHIP DMG: just before aAccessInterface->Read call, aAccessInterface=0xb23142d4

Basically: 0xb23142b8 + 0x20 = 0xb23142d8, and 0xb23142d8 > 0xb23142d4
So by writing the amount of data the CHIP SDK told me was available for writing, I had actually overwritten part of the buffer that was storing the pre-defined attribute access interface for Endpoint 0, thereby resulting in the crash since the memory stored in that buffer was no longer valid.

Copy link

semanticdiff-com bot commented Oct 9, 2024

Review changes with  SemanticDiff

@github-actions github-actions bot added the app label Oct 9, 2024
Copy link

github-actions bot commented Oct 9, 2024

PR #36003: Size comparison from a7bbd7b to 4436605

Full report (88 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section a7bbd7b 4436605 change % change
bl602 lighting-app bl602 FLASH 1280856 1280856 0 0.0
RAM 95808 95808 0 0.0
bl602+mfd FLASH 1308904 1308904 0 0.0
RAM 95464 95464 0 0.0
bl602+rpc FLASH 1335532 1335532 0 0.0
RAM 103784 103784 0 0.0
bl702 lighting-app bl702 FLASH 945236 945236 0 0.0
RAM 15105 15105 0 0.0
bl702+mfd FLASH 957690 957690 0 0.0
RAM 14769 14769 0 0.0
bl702+rpc FLASH 1051394 1051394 0 0.0
RAM 23661 23661 0 0.0
bl706-eth FLASH 658368 658368 0 0.0
RAM 24745 24745 0 0.0
bl706-wifi FLASH 825164 825164 0 0.0
RAM 13965 13965 0 0.0
bl702l lighting-app bl702l FLASH 962172 962172 0 0.0
RAM 16804 16804 0 0.0
bl702l+mfd FLASH 974934 974934 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829460 829476 16 0.0
RAM 123292 123292 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814792 814808 16 0.0
RAM 125172 125172 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761356 761372 16 0.0
RAM 113664 113664 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745584 745600 16 0.0
RAM 113856 113856 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 617114 617130 16 0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 657218 657234 16 0.0
RAM 205548 205548 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678437 678445 8 0.0
RAM 78508 78508 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698281 698289 8 0.0
RAM 81140 81140 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698281 698289 8 0.0
RAM 81140 81140 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655217 655225 8 0.0
RAM 73576 73576 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614765 614773 8 0.0
RAM 71468 71468 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634393 634401 8 0.0
RAM 74020 74020 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634393 634401 8 0.0
RAM 74020 74020 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 634085 634093 8 0.0
RAM 74516 74516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653793 653801 8 0.0
RAM 77068 77068 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653793 653801 8 0.0
RAM 77068 77068 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609389 609397 8 0.0
RAM 68604 68604 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629249 629257 8 0.0
RAM 71236 71236 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629249 629257 8 0.0
RAM 71236 71236 0 0.0
efr32 lighting-app BRD4187C FLASH 934544 934576 32 0.0
RAM 135956 135956 0 0.0
lock-app BRD2605a FLASH 740640 740648 8 0.0
RAM 230816 230816 0 0.0
BRD4338a FLASH 741288 741296 8 0.0
RAM 230848 230848 0 0.0
window-app BRD4187C FLASH 1018108 1018108 0 0.0
RAM 127892 127892 0 0.0
esp32 all-clusters-app c3devkit DRAM 94088 94088 0 0.0
FLASH 1538678 1538690 12 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115032 115032 0 0.0
FLASH 1549018 1549034 16 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2780949 2781037 88 0.0
RAM 129520 129520 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6085426 6085546 120 0.0
RAM 514720 514720 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5418228 5418316 88 0.0
RAM 241200 241200 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4751700 4752278 578 0.0
RAM 218384 218384 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 12779836 12779924 88 0.0
RAM 567890 567890 0 0.0
chip-tool-ipv6only arm64 unknown 20880 20880 0 0.0
FLASH 11396256 11396288 32 0.0
RAM 618432 618432 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 11090809 11090897 88 0.0
RAM 567578 567578 0 0.0
fabric-bridge-app debug unknown 4632 4632 0 0.0
FLASH 4574898 4575478 580 0.0
RAM 205048 205048 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5692289 5692369 80 0.0
RAM 228488 228488 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4801264 4801384 120 0.0
RAM 204472 204472 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4430688 4430776 88 0.0
RAM 198192 198192 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4569502 4569590 88 0.0
RAM 202760 202760 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3111005 3111133 128 0.0
RAM 159280 159280 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4319472 4319488 16 0.0
RAM 242888 242888 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6029621 6030165 544 0.0
RAM 588256 588256 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 10979229 10979309 80 0.0
RAM 656960 656960 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914420 914428 8 0.0
RAM 142199 142199 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 885228 885240 12 0.0
RAM 140338 140338 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847836 847844 8 0.0
RAM 141101 141101 0 0.0
nxp contact k32w0+release FLASH 582168 582168 0 0.0
RAM 70792 70792 0 0.0
k32w1+release FLASH 596896 596912 16 0.0
RAM 63016 63016 0 0.0
mcxw71+release FLASH 596656 596672 16 0.0
RAM 63016 63016 0 0.0
light k32w0+release FLASH 618700 618700 0 0.0
RAM 70256 70256 0 0.0
k32w1+release FLASH 682904 682904 0 0.0
RAM 48648 48648 0 0.0
mcxw71+release FLASH 682904 682920 16 0.0
RAM 48648 48648 0 0.0
lock k32w1+release FLASH 705248 705248 0 0.0
RAM 67156 67156 0 0.0
mcxw71+release FLASH 705256 705272 16 0.0
RAM 67156 67156 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646292 1646292 0 0.0
RAM 210888 210888 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552356 1552372 16 0.0
RAM 207688 207688 0 0.0
light cy8ckit_062s2_43012 FLASH 1467828 1467828 0 0.0
RAM 200688 200688 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464900 1464900 0 0.0
RAM 225048 225048 0 0.0
qpg lighting-app qpg6105+debug FLASH 660488 660504 16 0.0
RAM 105236 105236 0 0.0
lock-app qpg6105+debug FLASH 618508 618524 16 0.0
RAM 99704 99704 0 0.0
stm32 light STM32WB5MM-DK FLASH 481784 481792 8 0.0
RAM 144684 144684 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620946 620950 4 0.0
RAM 50488 50488 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 688144 688148 4 0.0
RAM 148328 148328 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 781136 781140 4 0.0
RAM 110280 110280 0 0.0
bridge-app tlsr9258a FLASH 681042 681046 4 0.0
RAM 91144 91144 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620710 620714 4 0.0
RAM 50440 50440 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708652 708656 4 0.0
RAM 73780 73780 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625648 625652 4 0.0
RAM 144308 144308 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 811408 811412 4 0.0
RAM 98940 98940 0 0.0
lock-app-dfu tlsr9528a FLASH 656616 656620 4 0.0
RAM 66500 66500 0 0.0
ota-requestor-app tlsr9258a FLASH 697020 697024 4 0.0
RAM 90736 90736 0 0.0
pump-app-usb tlsr9518adk80d FLASH 634344 634348 4 0.0
RAM 55316 55316 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611534 611538 4 0.0
RAM 52560 52560 0 0.0
shell tlsr9518adk80d FLASH 467872 467872 0 0.0
RAM 68168 68168 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627860 627864 4 0.0
RAM 52160 52160 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653666 653670 4 0.0
RAM 56108 56108 0 0.0
thermostat tlsr9518adk80d FLASH 638266 638270 4 0.0
RAM 52952 52952 0 0.0
window-covering tlsr9118bdk40d FLASH 524404 524408 4 0.0
RAM 97284 97284 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1726732 1726820 88 0.0
RAM 89084 89084 0 0.0
chip-tool-ubsan arm unknown 10528 10528 0 0.0
FLASH 17717818 17717970 152 0.0
RAM 7714500 7714532 32 0.0

Copy link

github-actions bot commented Oct 10, 2024

PR #36003: Size comparison from 6880437 to 4e05b8f

Full report (27 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, nxp, qpg, stm32, tizen)
platform target config section 6880437 4e05b8f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1349640 1349640 0 0.0
RAM 103928 103928 0 0.0
bl702 lighting-app bl702+eth FLASH 647678 647678 0 0.0
RAM 25233 25233 0 0.0
bl702+wifi FLASH 825164 825164 0 0.0
RAM 13965 13965 0 0.0
bl706+mfd+rpc+littlefs FLASH 1053792 1053792 0 0.0
RAM 23821 23821 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 974932 974932 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829460 829476 16 0.0
RAM 123292 123292 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814792 814808 16 0.0
RAM 125172 125172 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761356 761372 16 0.0
RAM 113664 113664 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745584 745600 16 0.0
RAM 113856 113856 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 617114 617130 16 0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 657218 657234 16 0.0
RAM 205548 205548 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914420 914428 8 0.0
RAM 142199 142199 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 885228 885240 12 0.0
RAM 140338 140338 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847836 847844 8 0.0
RAM 141101 141101 0 0.0
nxp contact k32w0+release FLASH 582168 582168 0 0.0
RAM 70792 70792 0 0.0
k32w1+release FLASH 597000 597016 16 0.0
RAM 63016 63016 0 0.0
mcxw71+release FLASH 596760 596776 16 0.0
RAM 63016 63016 0 0.0
light k32w0+release FLASH 618700 618700 0 0.0
RAM 70256 70256 0 0.0
k32w1+release FLASH 683008 683008 0 0.0
RAM 48648 48648 0 0.0
mcxw71+release FLASH 683008 683024 16 0.0
RAM 48648 48648 0 0.0
lock k32w1+release FLASH 705360 705360 0 0.0
RAM 67156 67156 0 0.0
mcxw71+release FLASH 705368 705384 16 0.0
RAM 67156 67156 0 0.0
qpg lighting-app qpg6105+debug FLASH 660488 660504 16 0.0
RAM 105236 105236 0 0.0
lock-app qpg6105+debug FLASH 618508 618524 16 0.0
RAM 99704 99704 0 0.0
stm32 light STM32WB5MM-DK FLASH 481784 481792 8 0.0
RAM 144684 144684 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1726732 1726820 88 0.0
RAM 89084 89084 0 0.0
chip-tool-ubsan arm unknown 10528 10528 0 0.0
FLASH 17718034 17718194 160 0.0
RAM 7714536 7714568 32 0.0

@witowsg-amazon witowsg-amazon force-pushed the fix-attr-read-overflows branch 3 times, most recently from c8380ca to 0599ec9 Compare October 10, 2024 22:18
Copy link

github-actions bot commented Oct 10, 2024

PR #36003: Size comparison from 6880437 to 0599ec9

Full report (83 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 6880437 0599ec9 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1349640 1349640 0 0.0
RAM 103928 103928 0 0.0
bl702 lighting-app bl702+eth FLASH 647678 647678 0 0.0
RAM 25233 25233 0 0.0
bl702+wifi FLASH 825164 825164 0 0.0
RAM 13965 13965 0 0.0
bl706+mfd+rpc+littlefs FLASH 1053792 1053792 0 0.0
RAM 23821 23821 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 974932 974932 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829460 829476 16 0.0
RAM 123292 123292 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814792 814808 16 0.0
RAM 125172 125172 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761356 761372 16 0.0
RAM 113664 113664 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745584 745600 16 0.0
RAM 113856 113856 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 617114 617130 16 0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 657218 657234 16 0.0
RAM 205548 205548 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678437 678445 8 0.0
RAM 78508 78508 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698281 698289 8 0.0
RAM 81140 81140 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698281 698289 8 0.0
RAM 81140 81140 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655217 655225 8 0.0
RAM 73576 73576 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614765 614773 8 0.0
RAM 71468 71468 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634393 634401 8 0.0
RAM 74020 74020 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634393 634401 8 0.0
RAM 74020 74020 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 634085 634093 8 0.0
RAM 74516 74516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653793 653801 8 0.0
RAM 77068 77068 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653793 653801 8 0.0
RAM 77068 77068 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609389 609397 8 0.0
RAM 68604 68604 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629249 629257 8 0.0
RAM 71236 71236 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629249 629257 8 0.0
RAM 71236 71236 0 0.0
efr32 lighting-app BRD4187C FLASH 934544 934576 32 0.0
RAM 135956 135956 0 0.0
lock-app BRD2605a FLASH 740640 740648 8 0.0
RAM 230816 230816 0 0.0
BRD4338a FLASH 741288 741296 8 0.0
RAM 230848 230848 0 0.0
window-app BRD4187C FLASH 1018108 1018108 0 0.0
RAM 127892 127892 0 0.0
esp32 all-clusters-app c3devkit DRAM 94088 94088 0 0.0
FLASH 1538682 1538694 12 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115032 115032 0 0.0
FLASH 1549018 1549034 16 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2780949 2781037 88 0.0
RAM 129520 129520 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6085554 6085674 120 0.0
RAM 514752 514752 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5418228 5418348 120 0.0
RAM 241200 241200 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4751700 4752252 552 0.0
RAM 218384 218384 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 12780170 12780258 88 0.0
RAM 567890 567890 0 0.0
chip-tool-ipv6only arm64 unknown 20880 20880 0 0.0
FLASH 11396544 11396560 16 0.0
RAM 618432 618432 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 11091073 11091193 120 0.0
RAM 567578 567578 0 0.0
fabric-bridge-app debug unknown 4632 4632 0 0.0
FLASH 4575330 4575882 552 0.0
RAM 205048 205048 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5692289 5692369 80 0.0
RAM 228488 228488 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4801264 4801384 120 0.0
RAM 204472 204472 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4430688 4430776 88 0.0
RAM 198192 198192 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4569502 4569622 120 0.0
RAM 202760 202760 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3111005 3111133 128 0.0
RAM 159280 159280 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4319472 4319488 16 0.0
RAM 242888 242888 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6029621 6030165 544 0.0
RAM 588256 588256 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 1097932 10979453 128 0.0
RAM 656960 656960 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914420 914428 8 0.0
RAM 142199 142199 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 885228 885240 12 0.0
RAM 140338 140338 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847836 847844 8 0.0
RAM 141101 141101 0 0.0
nxp contact k32w0+release FLASH 582168 582168 0 0.0
RAM 70792 70792 0 0.0
k32w1+release FLASH 597000 597016 16 0.0
RAM 63016 63016 0 0.0
mcxw71+release FLASH 596760 596776 16 0.0
RAM 63016 63016 0 0.0
light k32w0+release FLASH 618700 618700 0 0.0
RAM 70256 70256 0 0.0
k32w1+release FLASH 683008 683008 0 0.0
RAM 48648 48648 0 0.0
mcxw71+release FLASH 683008 683024 16 0.0
RAM 48648 48648 0 0.0
lock k32w1+release FLASH 705360 705360 0 0.0
RAM 67156 67156 0 0.0
mcxw71+release FLASH 705368 705384 16 0.0
RAM 67156 67156 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646292 1646292 0 0.0
RAM 210888 210888 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552356 1552372 16 0.0
RAM 207688 207688 0 0.0
light cy8ckit_062s2_43012 FLASH 1467828 1467828 0 0.0
RAM 200688 200688 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464900 1464900 0 0.0
RAM 225048 225048 0 0.0
qpg lighting-app qpg6105+debug FLASH 660488 660504 16 0.0
RAM 105236 105236 0 0.0
lock-app qpg6105+debug FLASH 618508 618524 16 0.0
RAM 99704 99704 0 0.0
stm32 light STM32WB5MM-DK FLASH 481784 481792 8 0.0
RAM 144684 144684 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620946 620950 4 0.0
RAM 50488 50488 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 688144 688148 4 0.0
RAM 148328 148328 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 781136 781140 4 0.0
RAM 110280 110280 0 0.0
bridge-app tlsr9258a FLASH 681042 681046 4 0.0
RAM 91144 91144 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620710 620714 4 0.0
RAM 50440 50440 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708652 708656 4 0.0
RAM 73780 73780 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625648 625652 4 0.0
RAM 144308 144308 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 811408 811412 4 0.0
RAM 98940 98940 0 0.0
lock-app-dfu tlsr9528a FLASH 656616 656620 4 0.0
RAM 66500 66500 0 0.0
ota-requestor-app tlsr9258a FLASH 697020 697024 4 0.0
RAM 90736 90736 0 0.0
pump-app-usb tlsr9518adk80d FLASH 634344 634348 4 0.0
RAM 55316 55316 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611534 611538 4 0.0
RAM 52560 52560 0 0.0
shell tlsr9518adk80d FLASH 467872 467872 0 0.0
RAM 68168 68168 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627860 627864 4 0.0
RAM 52160 52160 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653666 653670 4 0.0
RAM 56108 56108 0 0.0
thermostat tlsr9518adk80d FLASH 638266 638270 4 0.0
RAM 52952 52952 0 0.0
window-covering tlsr9118bdk40d FLASH 524404 524408 4 0.0
RAM 97284 97284 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1726732 1726836 104 0.0
RAM 89084 89084 0 0.0
chip-tool-ubsan arm unknown 10528 10528 0 0.0
FLASH 17718034 17718210 176 0.0
RAM 7714536 7714568 32 0.0

@witowsg-amazon witowsg-amazon force-pushed the fix-attr-read-overflows branch from 0599ec9 to b08064e Compare October 15, 2024 23:59
@witowsg-amazon witowsg-amazon force-pushed the fix-attr-read-overflows branch 2 times, most recently from 068f9e4 to d636f39 Compare October 16, 2024 00:38
Copy link

github-actions bot commented Oct 16, 2024

PR #36003: Size comparison from 579b1b1 to d636f39

Full report (82 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 579b1b1 d636f39 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1349986 1349986 0 0.0
RAM 104120 104120 0 0.0
bl702 lighting-app bl702+eth FLASH 647742 647742 0 0.0
RAM 25233 25233 0 0.0
bl702+wifi FLASH 825228 825228 0 0.0
RAM 13965 13965 0 0.0
bl706+mfd+rpc+littlefs FLASH 1054154 1054154 0 0.0
RAM 23821 23821 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 974998 974998 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829532 829548 16 0.0
RAM 123452 123452 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814872 814888 16 0.0
RAM 125332 125332 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761436 761452 16 0.0
RAM 113824 113824 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745664 745680 16 0.0
RAM 114016 114016 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 617202 617218 16 0.0
RAM 205908 205908 0 0.0
lock CC3235SF_LAUNCHXL FLASH 657258 657274 16 0.0
RAM 206060 206060 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678517 678525 8 0.0
RAM 78668 78668 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698361 698369 8 0.0
RAM 81300 81300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698361 698369 8 0.0
RAM 81300 81300 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655297 655305 8 0.0
RAM 73736 73736 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614845 614853 8 0.0
RAM 71628 71628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634473 634481 8 0.0
RAM 74180 74180 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634473 634481 8 0.0
RAM 74180 74180 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 634165 634173 8 0.0
RAM 74676 74676 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653873 653881 8 0.0
RAM 77228 77228 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653873 653881 8 0.0
RAM 77228 77228 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609477 609485 8 0.0
RAM 68764 68764 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629337 629345 8 0.0
RAM 71396 71396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629337 629345 8 0.0
RAM 71396 71396 0 0.0
efr32 lock-app BRD4187C FLASH 925216 925216 0 0.0
RAM 159708 159708 0 0.0
BRD4338a FLASH 741384 741392 8 0.0
RAM 231008 231008 0 0.0
window-app BRD4187C FLASH 1018172 1018172 0 0.0
RAM 128052 128052 0 0.0
esp32 all-clusters-app c3devkit DRAM 94248 94248 0 0.0
FLASH 1538732 1538744 12 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115192 115192 0 0.0
FLASH 1549078 1549094 16 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2781089 2781177 88 0.0
RAM 129520 129520 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6087530 6087650 120 0.0
RAM 522912 522912 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5418280 5418400 120 0.0
RAM 241200 241200 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4751720 4752272 552 0.0
RAM 218384 218384 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 13161544 13161664 120 0.0
RAM 584562 584562 0 0.0
chip-tool-ipv6only arm64 unknown 21408 21408 0 0.0
FLASH 11720160 11720176 16 0.0
RAM 635480 635480 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 11377139 11377259 120 0.0
RAM 584218 584218 0 0.0
fabric-bridge-app debug unknown 4632 4632 0 0.0
FLASH 4575352 4575904 552 0.0
RAM 205048 205048 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5693729 5693809 80 0.0
RAM 228488 228488 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4801296 4801416 120 0.0
RAM 204472 204472 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4430678 4430766 88 0.0
RAM 198192 198192 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4569444 4569564 120 0.0
RAM 202760 202760 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3111005 3111133 128 0.0
RAM 159280 159280 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4319696 4319712 16 0.0
RAM 242888 242888 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6031557 6032117 560 0.0
RAM 596416 596416 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 11367389 11367501 112 0.0
RAM 675936 675936 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914504 914512 8 0.0
RAM 142359 142359 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 885280 885292 12 0.0
RAM 140498 140498 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847924 847932 8 0.0
RAM 141261 141261 0 0.0
nxp contact k32w0+release FLASH 582248 582248 0 0.0
RAM 70952 70952 0 0.0
k32w1+release FLASH 597136 597136 0 0.0
RAM 63184 63184 0 0.0
mcxw71+release FLASH 596896 596896 0 0.0
RAM 63184 63184 0 0.0
light k32w0+release FLASH 618764 618780 16 0.0
RAM 70416 70416 0 0.0
k32w1+release FLASH 683112 683128 16 0.0
RAM 48816 48816 0 0.0
mcxw71+release FLASH 683128 683128 0 0.0
RAM 48816 48816 0 0.0
lock k32w1+release FLASH 705480 705496 16 0.0
RAM 67324 67324 0 0.0
mcxw71+release FLASH 705504 705504 0 0.0
RAM 67324 67324 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646388 1646388 0 0.0
RAM 211400 211400 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552436 1552452 16 0.0
RAM 208200 208200 0 0.0
light cy8ckit_062s2_43012 FLASH 1467860 1467876 16 0.0
RAM 201200 201200 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464932 1464948 16 0.0
RAM 225560 225560 0 0.0
qpg lighting-app qpg6105+debug FLASH 660560 660576 16 0.0
RAM 105396 105396 0 0.0
lock-app qpg6105+debug FLASH 618580 618596 16 0.0
RAM 99864 99864 0 0.0
stm32 light STM32WB5MM-DK FLASH 481864 481872 8 0.0
RAM 144844 144844 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620998 621002 4 0.0
RAM 50648 50648 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 688222 688226 4 0.0
RAM 148488 148488 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 781214 781218 4 0.0
RAM 110440 110440 0 0.0
bridge-app tlsr9258a FLASH 681098 681102 4 0.0
RAM 91304 91304 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620762 620766 4 0.0
RAM 50600 50600 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708716 708720 4 0.0
RAM 73940 73940 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625716 625720 4 0.0
RAM 144468 144468 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 811724 811728 4 0.0
RAM 99100 99100 0 0.0
lock-app-dfu tlsr9528a FLASH 656668 656672 4 0.0
RAM 66660 66660 0 0.0
ota-requestor-app tlsr9258a FLASH 697076 697080 4 0.0
RAM 90896 90896 0 0.0
pump-app-usb tlsr9518adk80d FLASH 634408 634412 4 0.0
RAM 55476 55476 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611598 611602 4 0.0
RAM 52720 52720 0 0.0
shell tlsr9518adk80d FLASH 467872 467872 0 0.0
RAM 68168 68168 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627912 627916 4 0.0
RAM 52320 52320 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653730 653734 4 0.0
RAM 56268 56268 0 0.0
thermostat tlsr9518adk80d FLASH 638340 638344 4 0.0
RAM 53112 53112 0 0.0
window-covering tlsr9118bdk40d FLASH 524456 524460 4 0.0
RAM 97444 97444 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1726716 1726820 104 0.0
RAM 89084 89084 0 0.0
chip-tool-ubsan arm unknown 10792 10792 0 0.0
FLASH 18327198 18327358 160 0.0
RAM 7969512 7969544 32 0.0

* Prevent buffer overflows by blocking creation of dynamic endpoints
with attributes that would overflow the static attribute buffer
* Added additional sanity checks to block reads of attributes that
would overflow the attribute reads; return RESOURCE_EXHAUSTED instead
@witowsg-amazon witowsg-amazon force-pushed the fix-attr-read-overflows branch 2 times, most recently from e74b31c to 30389a7 Compare February 26, 2025 01:14
Copy link

github-actions bot commented Feb 26, 2025

PR #36003: Size comparison from 629fea4 to 30389a7

Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 629fea4 30389a72 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096628 1096628 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651606 651606 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 828878 828878 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061274 1061274 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892118 892118 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975014 975014 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815300 815300 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824220 824220 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771080 771096 16 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755364 755380 16 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538842 538858 16 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572998 573014 16 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656429 656437 8 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676289 676297 8 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676289 676297 8 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633213 633221 8 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616293 616301 8 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635929 635937 8 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635929 635937 8 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635789 635797 8 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655513 655521 8 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655513 655521 8 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612137 612145 8 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631997 632005 8 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631997 632005 8 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 939536 939536 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732536 732536 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032000 1032000 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1582004 1582016 12 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116108 116108 0 0.0
FLASH 1550014 1550030 16 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4728 4728 0 0.0
FLASH 2650031 2650151 120 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5536 5536 0 0.0
FLASH 5921536 5921656 120 0.0
RAM 513712 513712 0 0.0
all-clusters-minimal-app debug unknown 5432 5432 0 0.0
FLASH 5266570 5266658 88 0.0
RAM 221112 221112 0 0.0
bridge-app debug unknown 5448 5448 0 0.0
FLASH 4625212 4625764 552 0.0
RAM 199816 199816 0 0.0
camera-app debug unknown 5432 5432 0 0.0
FLASH 4671992 4672112 120 0.0
RAM 194592 194592 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13302351 13302471 120 0.0
RAM 603392 603392 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11495416 11495432 16 0.0
RAM 656112 656112 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11567249 11567369 120 0.0
RAM 603176 603176 0 0.0
fabric-bridge-app debug unknown 4696 4696 0 0.0
FLASH 4452430 4452982 552 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4952 4952 0 0.0
FLASH 5569381 5569941 560 0.0
RAM 470400 470400 0 0.0
lighting-app debug+rpc+ui unknown 6160 6160 0 0.0
FLASH 5515665 5515793 128 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5400 5400 0 0.0
FLASH 4688680 4688800 120 0.0
RAM 191144 191144 0 0.0
ota-provider-app debug unknown 4736 4736 0 0.0
FLASH 4310860 4310980 120 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4688 4688 0 0.0
FLASH 4440986 4441074 88 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2949196 2949308 112 0.0
RAM 143672 143672 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4138536 4138568 32 0.0
RAM 229016 229016 0 0.0
tv-app debug unknown 5728 5728 0 0.0
FLASH 5908261 5908821 560 0.0
RAM 593832 593832 0 0.0
tv-casting-app debug unknown 5304 5304 0 0.0
FLASH 11472973 11473085 112 0.0
RAM 718656 718656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907708 907716 8 0.0
RAM 142323 142323 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901788 901800 12 0.0
RAM 124663 124663 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846312 846320 8 0.0
RAM 141251 141251 0 0.0
nxp contact k32w0+release FLASH 585256 585272 16 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600712 600712 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611196 611212 16 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685680 685696 16 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749536 749552 16 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646188 1646204 16 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552956 1552956 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438644 1438644 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467516 1467532 16 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662188 662188 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620304 620304 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459832 459840 8 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 665034 665038 4 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622082 4 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745218 745222 4 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753780 753784 4 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680850 680854 4 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709412 709416 4 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600592 600596 4 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788820 788824 4 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751016 1751120 104 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983694 18983862 168 0.0
RAM 8306240 8306272 32 0.0

@witowsg-amazon witowsg-amazon marked this pull request as ready for review February 27, 2025 18:12
size_t bufferSize = Compatibility::Internal::gEmberAttributeIOBufferSpan.size();
for (uint8_t i = 0; i < ep->clusterCount; i++)
{
const EmberAfCluster * cluster = &(ep->cluster[i]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also do:

Suggested change
const EmberAfCluster * cluster = &(ep->cluster[i]);
const EmberAfCluster & cluster = ep->cluster[i];

but either way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to leave the pointer-style since the structure is ultimately storing pointers -- in hindsight I probably should have done ep->cluster + i to just access the pointer directly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what it's worth, the structure is not in fact storing pointers. It's storing EmberAfCluster objects.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@witowsg-amazon witowsg-amazon force-pushed the fix-attr-read-overflows branch from 9d1204e to d263b42 Compare March 5, 2025 18:41
Copy link

github-actions bot commented Mar 5, 2025

PR #36003: Size comparison from a579c8d to d263b42

Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section a579c8d d263b42 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096882 1096882 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651856 651856 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829128 829128 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061524 1061524 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892368 892368 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975264 975264 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817208 817224 16 0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826128 826144 16 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 773012 773028 16 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757288 757288 0 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540790 540790 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574890 574890 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658917 658925 8 0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678777 678785 8 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678777 678785 8 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635701 635709 8 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619157 619165 8 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638793 638801 8 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638793 638801 8 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638645 638653 8 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658369 658377 8 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658369 658377 8 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614985 614993 8 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634845 634853 8 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634845 634853 8 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939728 939760 32 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 733360 733376 16 0.0
RAM 234840 234840 0 0.0
window-app BRD4187C FLASH 1032232 1032264 32 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98704 98704 0 0.0
FLASH 1593224 1593236 12 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117492 117492 0 0.0
FLASH 1559930 1559946 16 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2653715 2653835 120 0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5975196 5975316 120 0.0
RAM 515608 515608 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5311836 5311924 88 0.0
RAM 222648 222648 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4625096 4625648 552 0.0
RAM 200984 200984 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4675622 4675742 120 0.0
RAM 195792 195792 0 0.0
camera-controller debug unknown 5776 5776 0 0.0
FLASH 11279343 11279431 88 0.0
RAM 594048 594048 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13292291 13292411 120 0.0
RAM 602944 602944 0 0.0
chip-tool-ipv6only arm64 unknown 21992 21992 0 0.0
FLASH 11488120 11488152 32 0.0
RAM 655536 655536 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11572939 11573059 120 0.0
RAM 602728 602728 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4456052 4456604 552 0.0
RAM 188168 188168 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5573013 5573557 544 0.0
RAM 470864 470864 0 0.0
lighting-app debug+rpc+ui unknown 6192 6192 0 0.0
FLASH 5519825 5519953 128 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4692304 4692424 120 0.0
RAM 192344 192344 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4314482 4314602 120 0.0
RAM 181000 181000 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4444834 4444922 88 0.0
RAM 185488 185488 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2952060 2952188 128 0.0
RAM 145424 145424 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4141656 4141672 16 0.0
RAM 229808 229808 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5911861 5912405 544 0.0
RAM 594296 594296 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11462941 11463053 112 0.0
RAM 718208 718208 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914776 914784 8 0.0
RAM 142881 142881 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 907980 907992 12 0.0
RAM 125221 125221 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 851596 851604 8 0.0
RAM 141243 141243 0 0.0
nxp contact k32w0+release FLASH 587440 587440 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601248 601264 16 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613172 613172 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685872 685888 16 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750088 750104 16 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1660268 1660284 16 0.0
RAM 212320 212320 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1564572 1564588 16 0.0
RAM 208536 208536 0 0.0
light cy8ckit_062s2_43012 FLASH 1441308 1441324 16 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470196 1470212 16 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663836 663852 16 0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622296 622312 16 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459920 459928 8 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 664560 664564 4 0.0
RAM 90712 90712 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622142 622146 4 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 760916 760920 4 0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 754024 754028 4 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681074 681078 4 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709632 709636 4 0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 702182 702186 4 0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 601752 601756 4 0.0
RAM 138640 138640 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 789040 789044 4 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5152 5152 0 0.0
FLASH 1779956 1780052 96 0.0
RAM 94152 94152 0 0.0
chip-tool-ubsan arm unknown 11500 11500 0 0.0
FLASH 18966986 18967150 164 0.0
RAM 8299296 8299328 32 0.0

@mergify mergify bot merged commit cf45d5d into project-chip:master Mar 5, 2025
70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants