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

Fixing crashes when comparing objects to nil #34321

Merged
merged 2 commits into from
Jul 12, 2024

Conversation

woody-apple
Copy link
Contributor

Nil checks are good :)

Copy link
Contributor

@kiel-apple kiel-apple left a comment

Choose a reason for hiding this comment

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

weak opinions:

  • foo != nil && is more legible than foo &&
  • macros could make the combined condition more readable if we don't expect the debugger to land on these lines very frequently

Copy link

github-actions bot commented Jul 12, 2024

PR #34321: Size comparison from 707e431 to 0d29207

Full report (85 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 707e431 0d29207 change % change
bl602 lighting-app bl602 FLASH 1271402 1271402 0 0.0
RAM 95328 95328 0 0.0
bl602+mfd FLASH 1285916 1285916 0 0.0
RAM 95472 95472 0 0.0
bl602+rpc FLASH 1310618 1310618 0 0.0
RAM 103752 103752 0 0.0
bl702 lighting-app bl702 FLASH 1092492 1092492 0 0.0
RAM 15161 15161 0 0.0
bl702+mfd FLASH 1103186 1103186 0 0.0
RAM 15313 15313 0 0.0
bl702+rpc FLASH 1182302 1182302 0 0.0
RAM 24181 24181 0 0.0
bl706-eth FLASH 875642 875642 0 0.0
RAM 27272 27272 0 0.0
bl706-wifi FLASH 1128062 1128062 0 0.0
RAM 14605 14605 0 0.0
bl702l lighting-app bl702l FLASH 1079378 1079378 0 0.0
RAM 21732 21732 0 0.0
bl702l+mfd FLASH 1090640 1090640 0 0.0
RAM 21892 21892 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 798480 798480 0 0.0
RAM 109180 109180 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 816004 816004 0 0.0
RAM 116948 116948 0 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 807536 807536 0 0.0
RAM 111236 111236 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 760816 760816 0 0.0
RAM 105328 105328 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 746528 746528 0 0.0
RAM 105576 105576 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 606406 606406 0 0.0
RAM 204508 204508 0 0.0
lock CC3235SF_LAUNCHXL FLASH 651002 651002 0 0.0
RAM 204780 204780 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 667601 667601 0 0.0
RAM 77644 77644 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 687445 687445 0 0.0
RAM 80276 80276 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 687445 687445 0 0.0
RAM 80276 80276 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 644381 644381 0 0.0
RAM 72712 72712 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609241 609241 0 0.0
RAM 70804 70804 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 628877 628877 0 0.0
RAM 73356 73356 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 628877 628877 0 0.0
RAM 73356 73356 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624297 624297 0 0.0
RAM 73820 73820 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644013 644013 0 0.0
RAM 76372 76372 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644013 644013 0 0.0
RAM 76372 76372 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 593325 593325 0 0.0
RAM 67788 67788 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 613185 613185 0 0.0
RAM 70420 70420 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 613185 613185 0 0.0
RAM 70420 70420 0 0.0
efr32 lighting-app BRD4187C FLASH 924556 924548 -8 -0.0
RAM 137528 137528 0 0.0
lock-app BRD4338a FLASH 733148 733140 -8 -0.0
RAM 207892 207892 0 0.0
window-app BRD4187C FLASH 1012628 1012620 -8 -0.0
RAM 129632 129632 0 0.0
esp32 all-clusters-app c3devkit DRAM 90924 90924 0 0.0
FLASH 1469428 1469428 0 0.0
IRAM 75570 75570 0 0.0
m5stack DRAM 117412 117412 0 0.0
FLASH 1538335 1538335 0 0.0
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4592 4592 0 0.0
FLASH 2531024 2531024 0 0.0
RAM 125112 125112 0 0.0
all-clusters-app debug unknown 5368 5368 0 0.0
FLASH 5592158 5592158 0 0.0
RAM 493240 493240 0 0.0
all-clusters-minimal-app debug unknown 5288 5288 0 0.0
FLASH 5062864 5062864 0 0.0
RAM 235464 235464 0 0.0
bridge-app debug unknown 5256 5256 0 0.0
FLASH 4479392 4479392 0 0.0
RAM 212832 212832 0 0.0
chip-tool debug unknown 5728 5728 0 0.0
FLASH 11797831 11797831 0 0.0
RAM 547618 547618 0 0.0
chip-tool-ipv6only arm64 unknown 20128 20128 0 0.0
FLASH 10908044 10908044 0 0.0
RAM 596616 596616 0 0.0
fabric-admin debug unknown 5616 5616 0 0.0
FLASH 10879159 10879159 0 0.0
RAM 544650 544650 0 0.0
fabric-bridge-app debug unknown 4544 4544 0 0.0
FLASH 4248048 4248048 0 0.0
RAM 198992 198992 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5383730 5383730 0 0.0
RAM 224136 224136 0 0.0
lock-app debug unknown 5192 5192 0 0.0
FLASH 4542784 4542784 0 0.0
RAM 200216 200216 0 0.0
ota-provider-app debug unknown 4576 4576 0 0.0
FLASH 4198784 4198784 0 0.0
RAM 194544 194544 0 0.0
ota-requestor-app debug unknown 4512 4512 0 0.0
FLASH 4324144 4324144 0 0.0
RAM 199168 199168 0 0.0
shell debug unknown 4112 4112 0 0.0
FLASH 2805517 2805517 0 0.0
RAM 153008 153008 0 0.0
thermostat-no-ble arm64 unknown 9184 9184 0 0.0
FLASH 4169420 4169420 0 0.0
RAM 235840 235840 0 0.0
tv-app debug unknown 5472 5472 0 0.0
FLASH 5627408 5627408 0 0.0
RAM 342120 342120 0 0.0
tv-casting-app debug unknown 5096 5096 0 0.0
FLASH 9967534 9967534 0 0.0
RAM 402936 402936 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1502172 1502172 0 0.0
RAM 226648 226648 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 882560 882560 0 0.0
RAM 142229 142229 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 953060 953060 0 0.0
RAM 140657 140657 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 828076 828076 0 0.0
RAM 141123 141123 0 0.0
nxp contact k32w0+release FLASH 576116 576116 0 0.0
RAM 70024 70024 0 0.0
k32w1+release FLASH 591472 591472 0 0.0
RAM 74056 74056 0 0.0
light k32w0+release FLASH 610344 610344 0 0.0
RAM 69500 69500 0 0.0
k32w1+release FLASH 675080 675080 0 0.0
RAM 82816 82816 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1615580 1615580 0 0.0
RAM 209692 209692 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1536436 1536436 0 0.0
RAM 206588 206588 0 0.0
light cy8ckit_062s2_43012 FLASH 1463028 1463028 0 0.0
RAM 199876 199876 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463116 1463116 0 0.0
RAM 224388 224388 0 0.0
qpg lighting-app qpg6105+debug FLASH 651348 651348 0 0.0
RAM 104564 104564 0 0.0
lock-app qpg6105+debug FLASH 611256 611256 0 0.0
RAM 99240 99240 0 0.0
stm32 light STM32WB5MM-DK FLASH 473688 473688 0 0.0
RAM 144196 144196 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 632886 632886 0 0.0
RAM 50528 50528 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 658748 658748 0 0.0
RAM 148408 148408 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 779050 779050 0 0.0
RAM 113212 113212 0 0.0
bridge-app tlsr9258a FLASH 675882 675882 0 0.0
RAM 95304 95304 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 634470 634470 0 0.0
RAM 50572 50572 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 720330 720330 0 0.0
RAM 77148 77148 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613884 613884 0 0.0
RAM 144636 144636 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 801636 801636 0 0.0
RAM 103040 103040 0 0.0
lock-app-dfu tlsr9528a FLASH 665968 665968 0 0.0
RAM 69852 69852 0 0.0
ota-requestor-app tlsr9258a FLASH 695212 695212 0 0.0
RAM 95028 95028 0 0.0
pump-app tlsr9518adk80d FLASH 616744 616744 0 0.0
RAM 56952 56952 0 0.0
pump-controller-app tlsr9518adk80d FLASH 607128 607128 0 0.0
RAM 56752 56752 0 0.0
shell tlsr9518adk80d FLASH 466356 466356 0 0.0
RAM 72484 72484 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 641088 641088 0 0.0
RAM 52200 52200 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 650954 650954 0 0.0
RAM 60388 60388 0 0.0
thermostat tlsr9518adk80d FLASH 626018 626018 0 0.0
RAM 57084 57084 0 0.0
window-covering tlsr9118bdk40d FLASH 519278 519278 0 0.0
RAM 97800 97800 0 0.0
tizen all-clusters-app arm unknown 1584 1584 0 0.0
FLASH 1639156 1639156 0 0.0
RAM 48548 48548 0 0.0
chip-tool-ubsan arm unknown 2384 2384 0 0.0
FLASH 16292958 16292958 0 0.0
RAM 7156248 7156248 0 0.0

@mergify mergify bot merged commit 2d789f4 into project-chip:master Jul 12, 2024
68 checks passed
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Jul 15, 2024
* Fixing nil check crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
Comment on lines +2369 to +2374
if (!path)
return NO;

return (path.endpoint && [_endpoint isEqualToNumber:path.endpoint])
&& (path.cluster && [_cluster isEqualToNumber:path.cluster])
&& (path.event && [_event isEqualToNumber:path.event]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Same comments as for attribute request paths.

src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRBaseDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRDevice.mm Show resolved Hide resolved
src/darwin/Framework/CHIP/MTRDevice.mm Show resolved Hide resolved
woody-apple added a commit that referenced this pull request Jul 17, 2024
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Jul 18, 2024
* Fixing nil check crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Aug 14, 2024
* Fixing nil check crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Sep 16, 2024
* Fixing nil check crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants