There is no need to destroy these queues here, there are destroyed in hog_free. Prevents from memory violation. --- android/hog.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/android/hog.c b/android/hog.c index 88a5460..9f1fbca 100644 --- a/android/hog.c +++ b/android/hog.c @@ -1180,23 +1180,11 @@ struct bt_hog *bt_hog_new(const char *name, uint16_t vendor, uint16_t product, return NULL; hog->gatt_op = queue_new(); - if (!hog->gatt_op) { - hog_free(hog); - return NULL; - } - hog->bas = queue_new(); - if (!hog->bas) { - queue_destroy(hog->gatt_op, NULL); - hog_free(hog); - return NULL; - } - hog->uhid = bt_uhid_new_default(); - if (!hog->uhid) { + + if (!(hog->gatt_op && hog->bas && hog->uhid)) { hog_free(hog); - queue_destroy(hog->gatt_op, NULL); - queue_destroy(hog->bas, NULL); return NULL; } -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html