Hello Alexander Gendin, The patch 04291ee0aba6: "cmd: mbr: Allow 4 MBR partitions without need for extended" from Oct 9, 2023, leads to the following Smatch static checker warning:
test/cmd/mbr.c:243 mbr_test_run() warn: sizeof(NUMBER)? test/cmd/mbr.c 233 ulong mbr_wa, ebr_wa, ra, ebr_blk, mbr_parts_max; 234 struct udevice *dev; 235 ofnode root, node; 236 237 /* Enable the mmc6 node for this test */ 238 root = oftree_root(oftree_default()); 239 node = ofnode_find_subnode(root, "mmc6"); 240 ut_assert(ofnode_valid(node)); 241 ut_assertok(lists_bind_fdt(gd->dm_root, node, &dev, NULL, false)); 242 --> 243 mbr_parts_max = sizeof('\0') + 2 + ^^^ You probably wanted this to a readable way to explain that we are leaving space for the NUL char, however this size is 4 not 1. (I guess this is from type promotion?) 244 strlen(mbr_parts_header) + 245 strlen(mbr_parts_p1) + 246 strlen(mbr_parts_p2) + 247 strlen(mbr_parts_p3) + 248 max(strlen(mbr_parts_p4), strlen(mbr_parts_p5)) + 249 strlen(mbr_parts_tail); 250 ut_assertf(sizeof(mbr_parts_buf) >= mbr_parts_max, "Buffer avail: %ld; buffer req: %ld\n", 251 sizeof(mbr_parts_buf), mbr_parts_max); 252 regards, dan carpenter