This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/series/1182244/ ---Test result--- Test Summary: CheckPatch PASS 7.60 seconds GitLint PASS 4.63 seconds BuildEll PASS 19.78 seconds BluezMake PASS 390.34 seconds MakeCheck PASS 14.21 seconds MakeDistcheck PASS 142.22 seconds CheckValgrind PASS 233.89 seconds CheckSmatch PASS 298.47 seconds bluezmakeextell PASS 95.50 seconds TestFunctional PASS 1182.10 seconds IncrementalBuild FAIL 431.77 seconds ScanBuild FAIL 197.30 seconds Details ############################## Test: IncrementalBuild - FAIL Desc: Incremental build with the patches in the series Output: unit/test-bap.c: In function ‘test_setup_server’: unit/test-bap.c:756:58: error: passing argument 4 of ‘gatt_db_ccc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 756 | gatt_db_ccc_register(db, gatt_ccc_read_cb, NULL, gatt_notify_cb, data); | ^~~~~~~~~~~~~~ | | | void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *) {aka void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)} In file included from unit/test-bap.c:38: ./src/shared/gatt-db.h:213:58: note: expected ‘gatt_db_notify_t’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, unsigned char, struct bt_att *, void *)’} but argument is of type ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *)’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)’} 213 | gatt_db_notify_t notify_func, | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~ unit/test-bap.c:637:13: note: ‘gatt_notify_cb’ declared here 637 | static void gatt_notify_cb(struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~ ./src/shared/gatt-db.h:51:16: note: ‘gatt_db_notify_t’ declared here 51 | typedef void (*gatt_db_notify_t) (struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~~~ unit/test-micp.c: In function ‘test_server’: unit/test-micp.c:301:41: error: passing argument 4 of ‘gatt_db_ccc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 301 | gatt_notify_cb, data); | ^~~~~~~~~~~~~~ | | | void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *) {aka void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)} In file included from unit/test-micp.c:29: ./src/shared/gatt-db.h:213:58: note: expected ‘gatt_db_notify_t’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, unsigned char, struct bt_att *, void *)’} but argument is of type ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *)’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)’} 213 | gatt_db_notify_t notify_func, | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~ unit/test-micp.c:222:13: note: ‘gatt_notify_cb’ declared here 222 | static void gatt_notify_cb(struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~ ./src/shared/gatt-db.h:51:16: note: ‘gatt_db_notify_t’ declared here 51 | typedef void (*gatt_db_notify_t) (struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~~~ make[1]: *** [Makefile:7130: unit/test-micp.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile:7130: unit/test-bap.o] Error 1 make: *** [Makefile:4246: all] Error 2 [v2,02/14] shared/gatt-db: Pass the ATT opcode to the notify callback unit/test-bap.c: In function ‘test_setup_server’: unit/test-bap.c:756:58: error: passing argument 4 of ‘gatt_db_ccc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 756 | gatt_db_ccc_register(db, gatt_ccc_read_cb, NULL, gatt_notify_cb, data); | ^~~~~~~~~~~~~~ | | | void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *) {aka void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)} In file included from unit/test-bap.c:38: ./src/shared/gatt-db.h:213:58: note: expected ‘gatt_db_notify_t’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, unsigned char, struct bt_att *, void *)’} but argument is of type ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *)’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)’} 213 | gatt_db_notify_t notify_func, | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~ unit/test-bap.c:637:13: note: ‘gatt_notify_cb’ declared here 637 | static void gatt_notify_cb(struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~ ./src/shared/gatt-db.h:51:16: note: ‘gatt_db_notify_t’ declared here 51 | typedef void (*gatt_db_notify_t) (struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~~~ unit/test-micp.c: In function ‘test_server’: unit/test-micp.c:301:41: error: passing argument 4 of ‘gatt_db_ccc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 301 | gatt_notify_cb, data); | ^~~~~~~~~~~~~~ | | | void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *) {aka void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)} In file included from unit/test-micp.c:29: ./src/shared/gatt-db.h:213:58: note: expected ‘gatt_db_notify_t’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, unsigned char, struct bt_att *, void *)’} but argument is of type ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *)’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)’} 213 | gatt_db_notify_t notify_func, | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~ unit/test-micp.c:222:13: note: ‘gatt_notify_cb’ declared here 222 | static void gatt_notify_cb(struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~ ./src/shared/gatt-db.h:51:16: note: ‘gatt_db_notify_t’ declared here 51 | typedef void (*gatt_db_notify_t) (struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~~~ make[1]: *** [Makefile:7130: unit/test-micp.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile:7130: unit/test-bap.o] Error 1 make: *** [Makefile:4246: all] Error 2 ############################## Test: ScanBuild - FAIL Desc: Run Scan Build Output: src/shared/gatt-client.c:458:21: warning: Use of memory after it is freed [unix.Malloc] 458 | gatt_db_unregister(op->client->db, op->db_id); | ^~~~~~~~~~ src/shared/gatt-client.c:703:2: warning: Use of memory after it is freed [unix.Malloc] 703 | discovery_op_complete(op, false, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1109:2: warning: Use of memory after it is freed [unix.Malloc] 1109 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1303:2: warning: Use of memory after it is freed [unix.Malloc] 1303 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1368:2: warning: Use of memory after it is freed [unix.Malloc] 1368 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1643:6: warning: Use of memory after it is freed [unix.Malloc] 1643 | if (read_db_hash(op)) { | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1648:2: warning: Use of memory after it is freed [unix.Malloc] 1648 | discover_all(op); | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1703:56: warning: Use of memory after it is freed [unix.Malloc] 1703 | notify_data->chrc->ccc_write_id = notify_data->att_id = att_id; | ~~~~~~~~~~~~~~~~~~~ ^ src/shared/gatt-client.c:2170:6: warning: Use of memory after it is freed [unix.Malloc] 2170 | if (read_db_hash(op)) { | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2178:8: warning: Use of memory after it is freed [unix.Malloc] 2178 | discovery_op_ref(op), | ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3364:2: warning: Use of memory after it is freed [unix.Malloc] 3364 | complete_write_long_op(req, success, 0, false); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3386:2: warning: Use of memory after it is freed [unix.Malloc] 3386 | request_unref(req); | ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/rap.c:3344:30: warning: Assigned value is uninitialized [core.uninitialized.Assign] 3344 | out->tone_pct[k].i_sample = tone_pct_i[k]; | ^ ~~~~~~~~~~~~~ src/shared/rap.c:4291:13: warning: Use of memory after it is freed [unix.Malloc] 4291 | attached = queue_find(sessions, NULL, rap); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. src/shared/bap.c:1543:8: warning: Use of memory after it is freed [unix.Malloc] 1543 | bap = bt_bap_ref_safe(bap); | ^~~~~~~~~~~~~~~~~~~~ src/shared/bap.c:2359:20: warning: Use of memory after it is freed [unix.Malloc] 2359 | return queue_find(stream->bap->streams, NULL, stream); | ^~~~~~~~~~~~~~~~~~~~ 2 warnings generated. src/shared/gatt-client.c:458:21: warning: Use of memory after it is freed [unix.Malloc] 458 | gatt_db_unregister(op->client->db, op->db_id); | ^~~~~~~~~~ src/shared/gatt-client.c:703:2: warning: Use of memory after it is freed [unix.Malloc] 703 | discovery_op_complete(op, false, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1109:2: warning: Use of memory after it is freed [unix.Malloc] 1109 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1303:2: warning: Use of memory after it is freed [unix.Malloc] 1303 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1368:2: warning: Use of memory after it is freed [unix.Malloc] 1368 | discovery_op_complete(op, success, att_ecode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1643:6: warning: Use of memory after it is freed [unix.Malloc] 1643 | if (read_db_hash(op)) { | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1648:2: warning: Use of memory after it is freed [unix.Malloc] 1648 | discover_all(op); | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:1703:56: warning: Use of memory after it is freed [unix.Malloc] 1703 | notify_data->chrc->ccc_write_id = notify_data->att_id = att_id; | ~~~~~~~~~~~~~~~~~~~ ^ src/shared/gatt-client.c:2170:6: warning: Use of memory after it is freed [unix.Malloc] 2170 | if (read_db_hash(op)) { | ^~~~~~~~~~~~~~~~ src/shared/gatt-client.c:2178:8: warning: Use of memory after it is freed [unix.Malloc] 2178 | discovery_op_ref(op), | ^~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3364:2: warning: Use of memory after it is freed [unix.Malloc] 3364 | complete_write_long_op(req, success, 0, false); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/shared/gatt-client.c:3386:2: warning: Use of memory after it is freed [unix.Malloc] 3386 | request_unref(req); | ^~~~~~~~~~~~~~~~~~ 12 warnings generated. src/shared/rap.c:3344:30: warning: Assigned value is uninitialized [core.uninitialized.Assign] 3344 | out->tone_pct[k].i_sample = tone_pct_i[k]; | ^ ~~~~~~~~~~~~~ src/shared/rap.c:4291:13: warning: Use of memory after it is freed [unix.Malloc] 4291 | attached = queue_find(sessions, NULL, rap); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. tools/hciattach_ath3k.c:530:9: warning: File position of the stream might be 'indeterminate' after a failed operation. Can cause undefined behavior [unix.Stream] 530 | if (!fgets(byte, 3, stream)) | ^~~~~~~~~~~~~~~~~~~~~~ tools/hciattach_ath3k.c:530:9: warning: Read function called when stream is in EOF state. Function has no effect [unix.Stream] 530 | if (!fgets(byte, 3, stream)) | ^~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. tools/hciattach.c:817:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 817 | if ((n = read_hci_event(fd, resp, 10)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:865:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 865 | if ((n = read_hci_event(fd, resp, 4)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:887:8: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 887 | if ((n = read_hci_event(fd, resp, 10)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:909:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 909 | if ((n = read_hci_event(fd, resp, 4)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:930:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 930 | if ((n = read_hci_event(fd, resp, 4)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/hciattach.c:974:7: warning: Although the value stored to 'n' is used in the enclosing expression, the value is never actually read from 'n' [deadcode.DeadStores] 974 | if ((n = read_hci_event(fd, resp, 6)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 warnings generated. src/shared/bap.c:1543:8: warning: Use of memory after it is freed [unix.Malloc] 1543 | bap = bt_bap_ref_safe(bap); | ^~~~~~~~~~~~~~~~~~~~ src/shared/bap.c:2359:20: warning: Use of memory after it is freed [unix.Malloc] 2359 | return queue_find(stream->bap->streams, NULL, stream); | ^~~~~~~~~~~~~~~~~~~~ 2 warnings generated. src/oui.c:50:2: warning: Value stored to 'hwdb' is never read [deadcode.DeadStores] 50 | hwdb = udev_hwdb_unref(hwdb); | ^ ~~~~~~~~~~~~~~~~~~~~~ src/oui.c:53:2: warning: Value stored to 'udev' is never read [deadcode.DeadStores] 53 | udev = udev_unref(udev); | ^ ~~~~~~~~~~~~~~~~ 2 warnings generated. tools/rfcomm.c:234:3: warning: Value stored to 'i' is never read [deadcode.DeadStores] 234 | i = execvp(cmdargv[0], cmdargv); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:234:7: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker] 234 | i = execvp(cmdargv[0], cmdargv); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:354:8: warning: Although the value stored to 'fd' is used in the enclosing expression, the value is never actually read from 'fd' [deadcode.DeadStores] 354 | if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:473:6: warning: The 1st argument to 'getsockname' is -1 but should be >= 0 [unix.StdCLibraryFunctions] 473 | if (getsockname(nsk, (struct sockaddr *)&laddr, &alen) < 0) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm.c:497:14: warning: Assigned value is uninitialized [core.uninitialized.Assign] 497 | req.channel = raddr.rc_channel; | ^ ~~~~~~~~~~~~~~~~ tools/rfcomm.c:515:8: warning: Although the value stored to 'fd' is used in the enclosing expression, the value is never actually read from 'fd' [deadcode.DeadStores] 515 | if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 warnings generated. tools/ciptool.c:351:7: warning: 5th function call argument is an uninitialized value [core.CallAndMessage] 351 | sk = do_connect(ctl, dev_id, &src, &dst, psm, (1 << CMTP_LOOPBACK)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/sdptool.c:941:26: warning: Result of 'malloc' is converted to a pointer of type 'uint32_t', which is incompatible with sizeof operand type 'int' [unix.MallocSizeof] 941 | uint32_t *value_int = malloc(sizeof(int)); | ~~~~~~~~~~ ^~~~~~ ~~~~~~~~~~~ tools/sdptool.c:980:4: warning: 1st function call argument is an uninitialized value [core.CallAndMessage] 980 | free(allocArray[i]); | ^~~~~~~~~~~~~~~~~~~ tools/sdptool.c:3777:2: warning: Potential leak of memory pointed to by 'si.name' [unix.Malloc] 3777 | return add_service(0, &si); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ tools/sdptool.c:4112:4: warning: Potential leak of memory pointed to by 'context.svc' [unix.Malloc] 4112 | return -1; | ^~~~~~~~~ 4 warnings generated. src/sdp-xml.c:129:10: warning: Assigned value is uninitialized [core.uninitialized.Assign] 129 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ src/sdp-xml.c:309:11: warning: Assigned value is uninitialized [core.uninitialized.Assign] 309 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ src/sdp-xml.c:347:11: warning: Assigned value is uninitialized [core.uninitialized.Assign] 347 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ 3 warnings generated. tools/rfcomm-tester.c:410:6: warning: The 1st argument to 'bind' is -1 but should be >= 0 [unix.StdCLibraryFunctions] 410 | if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/rfcomm-tester.c:428:8: warning: The 1st argument to 'connect' is -1 but should be >= 0 [unix.StdCLibraryFunctions] 428 | err = connect(sk, (struct sockaddr *) &addr, sizeof(addr)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. tools/avtest.c:243:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 243 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:253:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 253 | len = write(sk, buf, 4); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:262:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 262 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:276:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 276 | len = write(sk, buf, | ^ ~~~~~~~~~~~~~~ 277 | 3 + sizeof(media_transport)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:283:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 283 | len = write(sk, buf, | ^ ~~~~~~~~~~~~~~ 284 | 1 + media_transport_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:290:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 290 | len = write(sk, buf, | ^ ~~~~~~~~~~~~~~ 291 | 1 + media_transport_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:297:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 297 | len = write(sk, buf, | ^ ~~~~~~~~~~~~~~ 298 | 2 + media_transport_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:309:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 309 | len = write(sk, buf, 4); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:313:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 313 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:322:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 322 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:326:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 326 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:335:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 335 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:342:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 342 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:364:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 364 | len = write(sk, buf, 4); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:368:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 368 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:377:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 377 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:381:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 381 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:394:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 394 | len = write(sk, buf, 4); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:398:5: warning: Value stored to 'len' is never read [deadcode.DeadStores] 398 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:405:4: warning: Value stored to 'len' is never read [deadcode.DeadStores] 405 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:415:4: warning: Value stored to 'len' is never read [deadcode.DeadStores] 415 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:580:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 580 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:588:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 588 | len = write(sk, buf, invalid ? 2 : 3); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:602:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 602 | len = write(sk, buf, 4 + media_transport_size); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/avtest.c:615:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 615 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:625:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 625 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:637:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 637 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:652:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 652 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:664:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 664 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:673:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 673 | len = write(sk, buf, 3); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:680:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] 680 | len = write(sk, buf, 2); | ^ ~~~~~~~~~~~~~~~~~ tools/avtest.c:716:2: warning: Value stored to 'len' is never read [deadcode.DeadStores] 716 | len = write(sk, buf, AVCTP_HEADER_LENGTH + sizeof(play_pressed)); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 warnings generated. tools/create-image.c:76:3: warning: Value stored to 'fd' is never read [deadcode.DeadStores] 76 | fd = -1; | ^ ~~ tools/create-image.c:84:3: warning: Value stored to 'fd' is never read [deadcode.DeadStores] 84 | fd = -1; | ^ ~~ tools/create-image.c:92:3: warning: Value stored to 'fd' is never read [deadcode.DeadStores] 92 | fd = -1; | ^ ~~ tools/create-image.c:105:2: warning: Value stored to 'fd' is never read [deadcode.DeadStores] 105 | fd = -1; | ^ ~~ tools/create-image.c:108:2: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker] 108 | fprintf(fp, HDR_FMT, HDR_MAGIC, ino, mode, 0, 0, 1, 0, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | (uintmax_t) st.st_size, 0, 0, 0, 0, namelen + 1, 0, name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/create-image.c:188:2: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker] 188 | fclose(fp); | ^~~~~~~~~~ 6 warnings generated. tools/btgatt-client.c:1822:2: warning: Value stored to 'argv' is never read [deadcode.DeadStores] 1822 | argv += optind; | ^ ~~~~~~ 1 warning generated. tools/check-selftest.c:42:3: warning: Value stored to 'ptr' is never read [deadcode.DeadStores] 42 | ptr = fgets(result, sizeof(result), fp); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. tools/btgatt-server.c:1204:2: warning: Value stored to 'argv' is never read [deadcode.DeadStores] 1204 | argv -= optind; | ^ ~~~~~~ 1 warning generated. tools/gatt-service.c:294:2: warning: 2nd function call argument is an uninitialized value [core.CallAndMessage] 294 | chr_write(chr, value, len); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. In file included from tools/obex-server-tool.c:17: In file included from /usr/include/fcntl.h:342: /usr/include/x86_64-linux-gnu/bits/fcntl2.h:76:10: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker] 76 | return __open_alias (__path, __oflag, __mode); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. client/btpclient/btpclientctl.c:402:3: warning: Value stored to 'bit' is never read [deadcode.DeadStores] 402 | bit = 0; | ^ ~ client/btpclient/btpclientctl.c:1655:2: warning: Null pointer passed to 2nd parameter expecting 'nonnull' [core.NonNullParamChecker] 1655 | memcpy(cp->data, ad_data, ad_len); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. src/sdp-client.c:353:14: warning: Access to field 'cb' results in a dereference of a null pointer [core.NullDereference] 353 | (*ctxt)->cb = cb; | ~~~~~~~~~~~~^~~~ 1 warning generated. src/sdpd-request.c:209:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint16_t' [unix.MallocSizeof] 209 | pElem = malloc(sizeof(uint16_t)); | ^~~~~~ ~~~~~~~~~~~~~~~~ src/sdpd-request.c:237:13: warning: Result of 'malloc' is converted to a pointer of type 'char', which is incompatible with sizeof operand type 'uint32_t' [unix.MallocSizeof] 237 | pElem = malloc(sizeof(uint32_t)); | ^~~~~~ ~~~~~~~~~~~~~~~~ 2 warnings generated. src/gatt-client.c:1572:2: warning: Use of memory after it is freed [unix.Malloc] 1572 | notify_client_unref(client); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. src/sdp-xml.c:129:10: warning: Assigned value is uninitialized [core.uninitialized.Assign] 129 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ src/sdp-xml.c:309:11: warning: Assigned value is uninitialized [core.uninitialized.Assign] 309 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ src/sdp-xml.c:347:11: warning: Assigned value is uninitialized [core.uninitialized.Assign] 347 | buf[1] = data[i + 1]; | ^ ~~~~~~~~~~~ 3 warnings generated. unit/avrcp-lib.c:1968:3: warning: 1st function call argument is an uninitialized value [core.CallAndMessage] 1968 | g_free(text[i]); | ^~~~~~~~~~~~~~~ unit/avrcp-lib.c:3510:4: warning: Address of stack memory associated with local variable 'val' is still referred to by the caller variable 'iov' upon returning to the caller. This will be a dangling reference [core.StackAddressEscape] 3503 | struct media_item val[AVRCP_MEDIA_ATTRIBUTE_LAST]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3504 | 3505 | for (i = 0; i < number; i++) { 3506 | uint16_t len = 0; 3507 | 3508 | if (attrs[i] > AVRCP_MEDIA_ATTRIBUTE_LAST || 3509 | attrs[i] == AVRCP_MEDIA_ATTRIBUTE_ILLEGAL) 3510 | return false; | ^~~~~~~~~~~~ unit/avrcp-lib.c:3526:2: warning: Address of stack memory associated with local variable 'val' is still referred to by the caller variable 'iov' upon returning to the caller. This will be a dangling reference [core.StackAddressEscape] 3503 | return true; | ^~~~~~~~~~~ 3 warnings generated. unit/avdtp.c:756:25: warning: Use of memory after it is freed [unix.Malloc] 756 | session->prio_queue = g_slist_remove(session->prio_queue, req); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unit/avdtp.c:763:24: warning: Use of memory after it is freed [unix.Malloc] 763 | session->req_queue = g_slist_remove(session->req_queue, req); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. unit/test-util.c:33:8: warning: Potential leak of memory pointed to by 'p1' [unix.Malloc] 33 | p2[0] = 1; | ~~~~~~^~~ unit/test-util.c:36:3: warning: Potential leak of memory pointed to by 'p2' [unix.Malloc] 36 | _cleanup_free_ uint8_t *data = NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/shared/util.h:134:24: note: expanded from macro '_cleanup_free_' 134 | #define _cleanup_free_ _cleanup_(freep) | ^ ./src/shared/util.h:132:22: note: expanded from macro '_cleanup_' 132 | #define _cleanup_(f) __attribute__((cleanup(f))) | ^ unit/test-util.c:42:3: warning: Potential leak of memory pointed to by 'data' [unix.Malloc] 42 | assert(is_null_too == NULL); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/assert.h:170:11: note: expanded from macro 'assert' 170 | ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ | ^~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. unit/test-bap.c: In function ‘test_setup_server’: unit/test-bap.c:756:58: error: passing argument 4 of ‘gatt_db_ccc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 756 | gatt_db_ccc_register(db, gatt_ccc_read_cb, NULL, gatt_notify_cb, data); | ^~~~~~~~~~~~~~ | | | void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *) {aka void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)} In file included from unit/test-bap.c:38: ./src/shared/gatt-db.h:213:58: note: expected ‘gatt_db_notify_t’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, unsigned char, struct bt_att *, void *)’} but argument is of type ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const uint8_t *, size_t, struct bt_att *, void *)’ {aka ‘void (*)(struct gatt_db_attribute *, struct gatt_db_attribute *, const unsigned char *, long unsigned int, struct bt_att *, void *)’} 213 | gatt_db_notify_t notify_func, | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~ unit/test-bap.c:637:13: note: ‘gatt_notify_cb’ declared here 637 | static void gatt_notify_cb(struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~ ./src/shared/gatt-db.h:51:16: note: ‘gatt_db_notify_t’ declared here 51 | typedef void (*gatt_db_notify_t) (struct gatt_db_attribute *attrib, | ^~~~~~~~~~~~~~~~ make[1]: *** [Makefile:7130: unit/test-bap.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:4246: all] Error 2 https://github.com/bluez/bluez/pull/2643 --- Regards, Linux Bluetooth