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

Correctly clean up VectorBool optional arguments in chip-tool. #22414

Merged

Conversation

bzbarsky-apple
Copy link
Contributor

We were not actually resetting the Optional (and in fact were operating on
totally the wrong type, and it's not clear why this was not crashing all the
time).

Fixes #22406

Problem

End up with a "vector of booleans" argument that points to empty vector, when the expectation is no vector at all or a nonempty one.

Change overview

Fix cleanup of command args when a command is done to handle this type of argument correctly.

Testing

Used test steps in #22406 to verify the fix.

We should probably take this on the sve2 branch @woody-apple @andy31415

We were not actually resetting the Optional (and in fact were operating on
totally the wrong type, and it's not clear why this was not crashing all the
time).

Fixes project-chip#22406
@github-actions
Copy link

github-actions bot commented Sep 6, 2022

PR #22414: Size comparison from 58fd10a to 116bc82

Increases (7 builds for cc13x2_26x2, linux, psoc6, qpg)
platform target config section 58fd10a 116bc82 change % change
cc13x2_26x2 lock-ftd LP_CC2652R7 (read/write) 165300 165308 8 0.0
linux chip-tool debug (read only) 10944297 10944457 160 0.0
.text 8854500 8854660 160 0.0
chip-tool-ipv6only arm64 (read only) 10319156 10319460 304 0.0
.text 8167508 8167812 304 0.0
tv-casting-app debug (read only) 5509777 5509921 144 0.0
.text 4892898 4893042 144 0.0
psoc6 light cy8ckit_062s2_43012 .debug_info 21914335 21914336 1 0.0
lock cy8ckit_062s2_43012 .debug_info 22294081 22294082 1 0.0
qpg lock-app qpg6105+debug (read/write) 1100168 1100176 8 0.0
.text 547268 547276 8 0.0
Decreases (3 builds for cc13x2_26x2, k32w, psoc6)
platform target config section 58fd10a 116bc82 change % change
cc13x2_26x2 lock-ftd LP_CC2652R7 (read only) 676419 676411 -8 -0.0
.text 598872 598864 -8 -0.0
k32w lock k32w0+release (read/write) 705216 705200 -16 -0.0
.text 629252 629236 -16 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 26715431 26715430 -1 -0.0
Full report (45 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 58fd10a 116bc82 change % change
bl602 lighting-app bl602 (read/write) 1386142 1386142 0 0.0
.bss 120298 120298 0 0.0
.data 4488 4488 0 0.0
.text 1052588 1052588 0 0.0
bl602+rpc (read/write) 1431790 1431790 0 0.0
.bss 127730 127730 0 0.0
.data 4600 4600 0 0.0
.text 1084344 1084344 0 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 675359 675359 0 0.0
(read/write) 176048 176048 0 0.0
.bss 74300 74300 0 0.0
.data 3380 3380 0 0.0
.rodata 89215 89215 0 0.0
.text 585832 585832 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 640071 640071 0 0.0
(read/write) 157868 157868 0 0.0
.bss 73572 73572 0 0.0
.data 3380 3380 0 0.0
.rodata 78367 78367 0 0.0
.text 561384 561384 0 0.0
lock-ftd LP_CC2652R7 (read only) 676419 676411 -8 -0.0
(read/write) 165300 165308 8 0.0
.bss 71500 71500 0 0.0
.data 3304 3304 0 0.0
.rodata 77067 77067 0 0.0
.text 598872 598864 -8 -0.0
lock-mtd LP_CC2652R7 (read only) 659379 659379 0 0.0
(read/write) 178028 178028 0 0.0
.bss 67188 67188 0 0.0
.data 3304 3304 0 0.0
.rodata 102323 102323 0 0.0
.text 556576 556576 0 0.0
pump-app LP_CC2652R7 (read only) 685247 685247 0 0.0
(read/write) 157176 157176 0 0.0
.bss 71436 71436 0 0.0
.data 3296 3296 0 0.0
.rodata 90079 90079 0 0.0
.text 594684 594684 0 0.0
pump-controller-app LP_CC2652R7 (read only) 669731 669731 0 0.0
(read/write) 172804 172804 0 0.0
.bss 71548 71548 0 0.0
.data 3292 3292 0 0.0
.rodata 85627 85627 0 0.0
.text 583624 583624 0 0.0
shell LP_CC2652R7 (read only) 666010 666010 0 0.0
(read/write) 180916 180916 0 0.0
.bss 76620 76620 0 0.0
.data 3376 3376 0 0.0
.rodata 85770 85770 0 0.0
.text 579924 579924 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 586882 586882 0 0.0
.app_xip_area 463540 463540 0 0.0
.bss 65776 65776 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 592634 592634 0 0.0
.app_xip_area 464508 464508 0 0.0
.bss 70560 70560 0 0.0
.data 748 748 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 599810 599810 0 0.0
.app_xip_area 477188 477188 0 0.0
.bss 65088 65088 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1108544 1108544 0 0.0
.bss 136332 136332 0 0.0
.data 2072 2072 0 0.0
.text 970120 970120 0 0.0
BRD4161A+rpc (read/write) 972188 972188 0 0.0
.bss 150844 150844 0 0.0
.data 2252 2252 0 0.0
.text 819072 819072 0 0.0
BRD4161A+rs911x (read/write) 1002048 1002048 0 0.0
.bss 169168 169168 0 0.0
.data 2064 2064 0 0.0
.text 830796 830796 0 0.0
lock-app BRD4161A+wf200 (read/write) 1150116 1150116 0 0.0
.bss 152248 152248 0 0.0
.data 2072 2072 0 0.0
.text 995776 995776 0 0.0
window-app BRD4161A (read/write) 1099784 1099784 0 0.0
.bss 137772 137772 0 0.0
.data 2096 2096 0 0.0
.text 959896 959896 0 0.0
esp32 all-clusters-app c3devkit (read only) 1033858 1033858 0 0.0
(read/write) 1493494 1493494 0 0.0
.dram0.bss 71120 71120 0 0.0
.dram0.data 13696 13696 0 0.0
.flash.rodata 218008 218008 0 0.0
.flash.text 1033858 1033858 0 0.0
.iram0.text 65204 65204 0 0.0
m5stack (read only) 1086195 1086195 0 0.0
(read/write) 490772 490772 0 0.0
.dram0.bss 76640 76640 0 0.0
.dram0.data 34152 34152 0 0.0
.flash.rodata 247312 247312 0 0.0
.flash.text 1080811 1080811 0 0.0
.iram0.text 123939 123939 0 0.0
k32w light k32w0+release (read/write) 648204 648204 0 0.0
.bss 70712 70712 0 0.0
.data 2068 2068 0 0.0
.text 572696 572696 0 0.0
lock k32w0+release (read/write) 705216 705200 -16 -0.0
.bss 71160 71160 0 0.0
.data 2076 2076 0 0.0
.text 629252 629236 -16 -0.0
linux all-clusters-app debug (read only) 3044969 3044969 0 0.0
(read/write) 156064 156064 0 0.0
.bss 61824 61824 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 85768 85768 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 1176 1176 0 0.0
.rodata 275339 275339 0 0.0
.text 2590194 2590194 0 0.0
all-clusters-minimal-app debug (read only) 2880769 2880769 0 0.0
(read/write) 147664 147664 0 0.0
.bss 61056 61056 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 78264 78264 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1160 1160 0 0.0
.rodata 275499 275499 0 0.0
.text 2428610 2428610 0 0.0
bridge-app debug+rpc (read only) 2378569 2378569 0 0.0
(read/write) 127752 127752 0 0.0
.bss 50656 50656 0 0.0
.data 3600 3600 0 0.0
.data.rel.ro 67640 67640 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 204200 204200 0 0.0
.text 2011458 2011458 0 0.0
chip-tool debug (read only) 10944297 10944457 160 0.0
(read/write) 657352 657352 0 0.0
.bss 25272 25272 0 0.0
.data 3266 3266 0 0.0
.data.rel.ro 622288 622288 0 0.0
.dynamic 608 608 0 0.0
.got 5096 5096 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 568981 568981 0 0.0
.text 8854500 8854660 160 0.0
chip-tool-ipv6only arm64 (read only) 10319156 10319460 304 0.0
(read/write) 705185 705185 0 0.0
.bss 33313 33313 0 0.0
.data 3280 3280 0 0.0
.data.rel.ro 649784 649784 0 0.0
.dynamic 560 560 0 0.0
.got 13840 13840 0 0.0
.init 24 24 0 0.0
.init_array 200 200 0 0.0
.rodata 499236 499236 0 0.0
.text 8167508 8167812 304 0.0
lighting-app debug+rpc (read only) 2603961 2603961 0 0.0
(read/write) 130536 130536 0 0.0
.bss 49792 49792 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72680 72680 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 221008 221008 0 0.0
.text 2211762 2211762 0 0.0
lock-app debug (read only) 2587009 2587009 0 0.0
(read/write) 125712 125712 0 0.0
.bss 48288 48288 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69688 69688 0 0.0
.dynamic 608 608 0 0.0
.got 4464 4464 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 238064 238064 0 0.0
.text 2182002 2182002 0 0.0
ota-provider-app debug (read only) 2364217 2364217 0 0.0
(read/write) 119144 119144 0 0.0
.bss 47808 47808 0 0.0
.data 1936 1936 0 0.0
.data.rel.ro 63512 63512 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 210008 210008 0 0.0
.text 1990450 1990450 0 0.0
ota-requestor-app debug (read only) 2529497 2529497 0 0.0
(read/write) 127552 127552 0 0.0
.bss 50368 50368 0 0.0
.data 2304 2304 0 0.0
.data.rel.ro 68920 68920 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 856 856 0 0.0
.rodata 216768 216768 0 0.0
.text 2139826 2139826 0 0.0
shell debug (read only) 2613273 2613273 0 0.0
(read/write) 142184 142184 0 0.0
.bss 57704 57704 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 77376 77376 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 1048 1048 0 0.0
.rodata 235442 235442 0 0.0
.text 2219122 2219122 0 0.0
thermostat-no-ble arm64 (read only) 2362916 2362916 0 0.0
(read/write) 141857 141857 0 0.0
.bss 55233 55233 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 76112 76112 0 0.0
.dynamic 560 560 0 0.0
.got 5056 5056 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 141308 141308 0 0.0
.text 1983568 1983568 0 0.0
tv-app debug (read only) 3191417 3191417 0 0.0
(read/write) 258040 258040 0 0.0
.bss 167352 167352 0 0.0
.data 4752 4752 0 0.0
.data.rel.ro 79368 79368 0 0.0
.dynamic 608 608 0 0.0
.got 4856 4856 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 260008 260008 0 0.0
.text 2741378 2741378 0 0.0
tv-casting-app debug (read only) 5509777 5509921 144 0.0
(read/write) 160536 160536 0 0.0
.bss 51352 51352 0 0.0
.data 2432 2432 0 0.0
.data.rel.ro 100304 100304 0 0.0
.dynamic 608 608 0 0.0
.got 4776 4776 0 0.0
.init 27 27 0 0.0
.init_array 1048 1048 0 0.0
.rodata 344977 344977 0 0.0
.text 4892898 4893042 144 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2455032 2455032 0 0.0
.bss 215044 215044 0 0.0
.data 5872 5872 0 0.0
.text 1417676 1417676 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1181199 1181199 0 0.0
bss 143641 143641 0 0.0
rodata 143552 143552 0 0.0
text 815072 815072 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1160395 1160395 0 0.0
bss 142868 142868 0 0.0
rodata 135140 135140 0 0.0
text 803464 803464 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 841960 841960 0 0.0
(read/write) 1742548 1742548 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188720 188720 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1221471 1221471 0 0.0
.debug_aranges 111728 111728 0 0.0
.debug_frame 372964 372964 0 0.0
.debug_info 26715431 26715430 -1 -0.0
.debug_line 3657437 3657437 0 0.0
.debug_loc 3573305 3573305 0 0.0
.debug_ranges 338440 338440 0 0.0
.debug_str 3427396 3427396 0 0.0
.heap 841960 841960 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 570587 570587 0 0.0
.symtab 421456 421456 0 0.0
.text 1542776 1542776 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 842696 842696 0 0.0
(read/write) 1685748 1685748 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187984 187984 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2664 2664 0 0.0
.debug_abbrev 1213310 1213310 0 0.0
.debug_aranges 111200 111200 0 0.0
.debug_frame 376044 376044 0 0.0
.debug_info 26452053 26452053 0 0.0
.debug_line 3677953 3677953 0 0.0
.debug_loc 3560942 3560942 0 0.0
.debug_ranges 337056 337056 0 0.0
.debug_str 3416401 3416401 0 0.0
.heap 842696 842696 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 535061 535061 0 0.0
.symtab 408048 408048 0 0.0
.text 1486712 1486712 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 850928 850928 0 0.0
(read/write) 1603020 1603020 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 179960 179960 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2456 2456 0 0.0
.debug_abbrev 1048129 1048129 0 0.0
.debug_aranges 103376 103376 0 0.0
.debug_frame 346312 346312 0 0.0
.debug_info 21914335 21914336 1 0.0
.debug_line 3248418 3248418 0 0.0
.debug_loc 3259284 3259284 0 0.0
.debug_ranges 302528 302528 0 0.0
.debug_str 3221667 3221667 0 0.0
.heap 850928 850928 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 468360 468360 0 0.0
.symtab 375136 375136 0 0.0
.text 1412216 1412216 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 845896 845896 0 0.0
(read/write) 1640708 1640708 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 184976 184976 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2472 2472 0 0.0
.debug_abbrev 1055564 1055564 0 0.0
.debug_aranges 104048 104048 0 0.0
.debug_frame 349140 349140 0 0.0
.debug_info 22294081 22294082 1 0.0
.debug_line 3257239 3257239 0 0.0
.debug_loc 3299137 3299137 0 0.0
.debug_ranges 305872 305872 0 0.0
.debug_str 3249088 3249088 0 0.0
.heap 845896 845896 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 474563 474563 0 0.0
.symtab 378320 378320 0 0.0
.text 1444872 1444872 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1129164 1129164 0 0.0
.bss 106112 106112 0 0.0
.data 1028 1028 0 0.0
.text 576260 576260 0 0.0
lock-app qpg6105+debug (read/write) 1100168 1100176 8 0.0
.bss 102344 102344 0 0.0
.data 1032 1032 0 0.0
.text 547268 547276 8 0.0
telink light-switch-app tlsr9518adk80d (read/write) 809088 809088 0 0.0
bss 71344 71344 0 0.0
noinit 43488 43488 0 0.0
text 571514 571514 0 0.0
lighting-app tlsr9518adk80d (read/write) 831004 831004 0 0.0
bss 72200 72200 0 0.0
noinit 43488 43488 0 0.0
text 589638 589638 0 0.0

@bzbarsky-apple bzbarsky-apple merged commit af37272 into project-chip:master Sep 6, 2022
@bzbarsky-apple bzbarsky-apple deleted the fix-optional-vector-bool branch September 6, 2022 23:58
github-actions bot pushed a commit that referenced this pull request Sep 6, 2022
We were not actually resetting the Optional (and in fact were operating on
totally the wrong type, and it's not clear why this was not crashing all the
time).

Fixes #22406
andy31415 added a commit that referenced this pull request Sep 8, 2022
… (#22438)

We were not actually resetting the Optional (and in fact were operating on
totally the wrong type, and it's not clear why this was not crashing all the
time).

Fixes #22406

Co-authored-by: Boris Zbarsky <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>
isiu-apple pushed a commit to isiu-apple/connectedhomeip that referenced this pull request Sep 16, 2022
…ct-chip#22414)

We were not actually resetting the Optional (and in fact were operating on
totally the wrong type, and it's not clear why this was not crashing all the
time).

Fixes project-chip#22406
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.

[TC-IDM-6.2] Segmentation fault on step 9
3 participants