8000 Enforce constraints for sizes of labelstruct label and value lengths by andy31415 · Pull Request #20431 · project-chip/connectedhomeip · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Enforce constraints for sizes of labelstruct label and value lengths #20431

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

Merged
merged 4 commits into from
Jul 8, 2022

Conversation

andy31415
Copy link
Contributor
@andy31415 andy31415 commented Jul 7, 2022

Problem

Server will allow structs with members larger than 16 characters, but reading the values back will get truncated.

Fixes #19851

Change overview

Add constraint checking into our writer logic.

Testing

Manually tried to write an overly large value, saw back a FAILURE response.
Added a yaml integration test

@github-actions
Copy link
github-actions bot commented Jul 7, 2022

PR #20431: Size comparison from e974dc6 to 68c4e81

Increases above 0.2%:

platform target config section e974dc6 68c4e81 change % change
efr32 lighting-app BRD4161A+rpc (read/write) 151948 1135196 983248 647.1
nrfconnect all-clusters-app nrf52840dk_nrf52840 rodata 141376 141776 400 0.3
Increases (39 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section e974dc6 68c4e81 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665443 665731 288 0.0
.text 577060 577348 288 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631435 631523 88 0.0
.text 553804 553892 88 0.0
lock-ftd LP_CC2652R7 (read only) 668343 668631 288 0.0
.text 591656 591944 288 0.0
lock-mtd LP_CC2652R7 (read only) 617759 618039 280 0.0
.text 541184 541464 280 0.1
shell LP_CC2652R7 (read only) 657942 658230 288 0.0
.text 572780 573068 288 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579214 80 0.0
.app_xip_area 457904 457984 80 0.0
lock cyw930739m2evb_01 (read/write) 584862 585150 288 0.0
.app_xip_area 458896 459184 288 0.1
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582286 80 0.0
.app_xip_area 461824 461904 80 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080860 208 0.0
.text 945588 945796 208 0.0
BRD4161A+rpc (read/write) 151948 1135196 983248 647.1
.text 983032 983240 208 0.0
BRD4161A+rs911x (read/write) 946756 946948 192 0.0
.text 803920 804112 192 0.0
lock-app BRD4161A+wf200 (read/write) 1127288 1128024 736 0.1
.text 981020 981756 736 0.1
window-app BRD4161A (read/write) 1074436 1074644 208 0.0
.text 937868 938076 208 0.0
esp32 all-clusters-app c3devkit (read only) 1019370 1019608 238 0.0
(read/write) 1485050 1485458 408 0.0
.flash.rodata 214936 215344 408 0.2
.flash.text 1019370 1019608 238 0.0
m5stack (read only) 1073243 1073515 272 0.0
(read/write) 487136 487536 400 0.1
.flash.rodata 245396 245796 400 0.2
.flash.text 1067859 1068131 272 0.0
k32w light k32w061+release (read/write) 658192 658272 80 0.0
.text 580884 580964 80 0.0
lock k32w061+release (read/write) 684788 685028 240 0.0
.text 607004 607244 240 0.0
linux all-clusters-app debug (read only) 2955793 2958177 2384 0.1
.rodata 263133 263549 416 0.2
.text 2515474 2517442 1968 0.1
all-clusters-minimal-app debug (read only) 2809921 2810721 800 0.0
.rodata 264829 265245 416 0.2
.text 2370082 2370466 384 0.0
bridge-app debug+rpc (read only) 2312761 2313129 368 0.0
.text 1953074 1953442 368 0.0
chip-tool debug (read only) 10275665 10281945 6280 0.1
(read/write) 618432 619392 960 0.2
.data.rel.ro 584080 585040 960 0.2
.rodata 513461 513717 256 0.0
.text 8339444 8343236 3792 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9971956 9977972 6016 0.1
(read/write) 680689 681649 960 0.1
.data.rel.ro 619624 620576 952 0.2
.got 13488 13496 8 0.1
.rodata 475572 475828 256 0.1
.text 7944804 7948308 3504 0.0
lighting-app debug+rpc (read only) 2548249 2548617 368 0.0
.text 2164674 2165042 368 0.0
lock-app debug (read only) 2510849 2513233 2384 0.1
.rodata 228232 228648 416 0.2
.text 2117474 2119442 1968 0.1
ota-provider-app debug (read only) 2319585 2319953 368 0.0
.text 1953394 1953762 368 0.0
ota-requestor-app debug (read only) 2436737 2437105 368 0.0
.text 2058354 2058722 368 0.0
shell debug (read only) 2546121 2548489 2368 0.1
.rodata 227250 227666 416 0.2
.text 2161794 2163746 1952 0.1
thermostat-no-ble arm64 (read only) 2592644 2593028 384 0.0
.text 2187520 2187904 384 0.0
tv-app debug (read only) 3099713 3100097 384 0.0
.text 2662882 2663266 384 0.0
tv-casting-app debug (read only) 5562817 5563201 384 0.0
.text 4941746 4942130 384 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2447400 2447552 152 0.0
.text 1410044 1410196 152 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1173807 1174575 768 0.1
rodata 141376 141776 400 0.3
text 810640 810996 356 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154771 80 0.0
text 800360 800440 80 0.0
p6 all-clusters-app default (read/write) 2563088 2564104 1016 0.0
.text 1521352 1522368 1016 0.1
all-clusters-minimal-app default (read/write) 2508952 2509160 208 0.0
.text 1467216 1467424 208 0.0
light-app default (read/write) 2439240 2439448 208 0.0
.text 1397504 1397712 208 0.0
lock-app default (read/write) 2465672 2466688 1016 0.0
.text 1423936 1424952 1016 0.1
telink light-switch-app tlsr9518adk80d (read/write) 796628 796756 128 0.0
text 565128 565250 122 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816584 120 0.0
text 581452 581574 122 0.0
Decreases (3 builds for cc13x2_26x2)
platform target config section e974dc6 68c4e81 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 185780 185492 -288 -0.2
lock-ftd LP_CC2652R7 (read/write) 173024 172736 -288 -0.2
shell LP_CC2652R7 (read/write) 188784 188496 -288 -0.2
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section e974dc6 68c4e81 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665443 665731 288 0.0
(read/write) 185780 185492 -288 -0.2
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88067 0 0.0
.text 577060 577348 288 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631435 631523 88 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77307 0 0.0
.text 553804 553892 88 0.0
lock-ftd LP_CC2652R7 (read only) 668343 668631 288 0.0
(read/write) 173024 172736 -288 -0.2
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76207 0 0.0
.text 591656 591944 288 0.0
lock-mtd LP_CC2652R7 (read only) 617759 618039 280 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76087 0 0.0
.text 541184 541464 280 0.1
pump-app LP_CC2652R7 (read only) 677703 677703 0 0.0
(read/write) 164512 164512 0 0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88431 88431 0 0.0
.text 588788 588788 0 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663527 0 0.0
(read/write) 178808 178808 0 0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84295 84295 0 0.0
.text 578752 578752 0 0.0
shell LP_CC2652R7 (read only) 657942 658230 288 0.0
(read/write) 188784 188496 -288 -0.2
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84846 0 0.0
.text 572780 573068 288 0.1
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579214 80 0.0
.app_xip_area 457904 457984 80 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 584862 585150 288 0.0
.app_xip_area 458896 459184 288 0.1
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582286 80 0.0
.app_xip_area 461824 461904 80 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080860 208 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 945588 945796 208 0.0
BRD4161A+rpc (read/write) 151948 1135196 983248 647.1
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983032 983240 208 0.0
BRD4161A+rs911x (read/write) 946756 946948 192 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 803920 804112 192 0.0
lock-app BRD4161A+wf200 (read/write) 1127288 1128024 736 0.1
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 981020 981756 736 0.1
window-app BRD4161A (read/write) 1074436 1074644 208 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 937868 938076 208 0.0
esp32 all-clusters-app c3devkit (read only) 1019370 1019608 238 0.0
(read/write) 1485050 1485458 408 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 214936 215344 408 0.2
.flash.text 1019370 1019608 238 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073243 1073515 272 0.0
(read/write) 487136 487536 400 0.1
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245396 245796 400 0.2
.flash.text 1067859 1068131 272 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658192 658272 80 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 580884 580964 80 0.0
lock k32w061+release (read/write) 684788 685028 240 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607004 607244 240 0.0
linux all-clusters-app debug (read only) 2955793 2958177 2384 0.1
(read/write) 154744 154744 0 0.0
.bss 61536 61536 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 84968 84968 0 0.0
.dynamic 608 608 0 0.0
.got 4536 4536 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 263133 263549 416 0.2
.text 2515474 2517442 1968 0.1
all-clusters-minimal-app debug (read only) 2809921 2810721 800 0.0
(read/write) 146680 146680 0 0.0
.bss 60864 60864 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 77608 77608 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 264829 265245 416 0.2
.text 2370082 2370466 384 0.0
bridge-app debug+rpc (read only) 2312761 2313129 368 0.0
(read/write) 125504 125504 0 0.0
.bss 48928 48928 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 66984 66984 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 197952 197952 0 0.0
.text 1953074 1953442 368 0.0
chip-tool debug (read only) 10275665 10281945 6280 0.1
(read/write) 618432 619392 960 0.2
.bss 24728 24728 0 0.0
.data 3234 3234 0 0.0
.data.rel.ro 584080 585040 960 0.2
.dynamic 608 608 0 0.0
.got 5096 5096 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 513461 513717 256 0.0
.text 8339444 8343236 3792 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9971956 9977972 6016 0.1
(read/write) 680689 681649 960 0.1
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 619624 620576 952 0.2
.dynamic 528 528 0 0.0
.got 13488 13496 8 0.1
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 475572 475828 256 0.1
.text 7944804 7948308 3504 0.0
lighting-app debug+rpc (read only) 2548249 2548617 368 0.0
(read/write) 129528 129528 0 0.0
.bss 49440 49440 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72136 72136 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 213608 213608 0 0.0
.text 2164674 2165042 368 0.0
lock-app debug (read only) 2510849 2513233 2384 0.1
(read/write) 124504 124504 0 0.0
.bss 47840 47840 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69096 69096 0 0.0
.dynamic 608 608 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 228232 228648 416 0.2
.text 2117474 2119442 1968 0.1
ota-provider-app debug (read only) 2319585 2319953 368 0.0
(read/write) 118312 118312 0 0.0
.bss 47488 47488 0 0.0
.data 1944 1944 0 0.0
.data.rel.ro 63096 63096 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 203416 203416 0 0.0
.text 1953394 1953762 368 0.0
ota-requestor-app debug (read only) 2436737 2437105 368 0.0
(read/write) 125216 125216 0 0.0
.bss 49856 49856 0 0.0
.data 2232 2232 0 0.0
.data.rel.ro 67288 67288 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 207232 207232 0 0.0
.text 2058354 2058722 368 0.0
shell debug (read only) 2546121 2548489 2368 0.1
(read/write) 141096 141096 0 0.0
.bss 57448 57448 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76688 76688 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 227250 227666 416 0.2
.text 2161794 2163746 1952 0.1
thermostat-no-ble arm64 (read only) 2592644 2593028 384 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165348 165348 0 0.0
.text 2187520 2187904 384 0.0
tv-app debug (read only) 3099713 3100097 384 0.0
(read/write) 257704 257704 0 0.0
.bss 167016 167016 0 0.0
.data 4848 4848 0 0.0
.data.rel.ro 79392 79392 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 952 952 0 0.0
.rodata 248928 248928 0 0.0
.text 2662882 2663266 384 0.0
tv-casting-app debug (read only) 5562817 5563201 384 0.0
(read/write) 161968 161968 0 0.0
.bss 50248 50248 0 0.0
.data 2416 2416 0 0.0
.data.rel.ro 103048 103048 0 0.0
.dynamic 608 608 0 0.0
.got 4736 4736 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 343209 343209 0 0.0
.text 4941746 4942130 384 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2447400 2447552 152 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410044 1410196 152 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1173807 1174575 768 0.1
bss 142900 142900 0 0.0
rodata 141376 141776 400 0.3
text 810640 810996 356 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154771 80 0.0
bss 142136 142136 0 0.0
rodata 133308 133308 0 0.0
text 800360 800440 80 0.0
p6 all-clusters-app default (read/write) 2563088 2564104 1016 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1521352 1522368 1016 0.1
all-clusters-minimal-app default (read/write) 2508952 2509160 208 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1467216 1467424 208 0.0
light-app default (read/write) 2439240 2439448 208 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1397504 1397712 208 0.0
lock-app default (read/write) 2465672 2466688 1016 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1423936 1424952 1016 0.1
telink light-switch-app tlsr9518adk80d (read/write) 796628 796756 128 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565128 565250 122 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816584 120 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581452 581574 122 0.0

@woody-apple woody-apple merged commit 117df83 into project-chip:master Jul 8, 2022
github-actions bot pushed a commit that referenced this pull request Jul 8, 2022
…20431)

* Enforce constraints for sizes of labelstruct label and value lengths

* Add a test user label cluster constraint integration test

* regen for tests

* Restyle

CHIP_ERROR TestAttemptToWriteOverlyLongItemForLabel_1()
{
MTRDevice * device = GetDevice("alpha");
8000
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure how this got in here, but this should be MTRBaseDevice.

andy31415 added a commit that referenced this pull request Jul 11, 2022
…20501)

* Enforce constraints for sizes of labelstruct label and value lengths (#20431)

* Enforce constraints for sizes of labelstruct label and value lengths

* Add a test user label cluster constraint integration test

* regen for tests

* Restyle

* Ran zap regen

Co-authored-by: Andrei Litvin <andy314@gmail.com>
jmartinez-silabs pushed a commit to jmartinez-silabs/connectedhomeip that referenced this pull request Jul 18, 2022
…roject-chip#20501)

* Enforce constraints for sizes of labelstruct label and value lengths (project-chip#20431)

* Enforce constraints for sizes of labelstruct label and value lengths

* Add a test user label cluster constraint integration test

* regen for tests

* Restyle

* Ran zap regen

Co-authored-by: Andrei Litvin <andy314@gmail.com>
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.

[Pre-SVE] User label writing too long label
4 participants
0