[dm-devel] [bug report] dm crypt: add cryptographic data integrity protection (authenticated encryption)
Dan Carpenter
dan.carpenter at oracle.com
Mon Mar 13 14:19:09 UTC 2017
Hello Milan Broz,
This is a semi-automatic email about new static checker warnings.
The patch 858516b7881e: "dm crypt: add cryptographic data integrity
protection (authenticated encryption)" from Jan 4, 2017, leads to the
following Smatch complaint:
drivers/md/dm-crypt.c:1390 crypt_alloc_buffer()
error: we previously assumed 'clone' could be null (see line 1362)
drivers/md/dm-crypt.c
1361 clone = bio_alloc_bioset(GFP_NOIO, nr_iovecs, cc->bs);
1362 if (!clone)
^^^^^^
We can be NULL on this path.
1363 goto return_clone;
1364
1365 clone_init(io, clone);
1366
1367 remaining_size = size;
1368
1369 for (i = 0; i < nr_iovecs; i++) {
1370 page = mempool_alloc(cc->page_pool, gfp_mask);
1371 if (!page) {
1372 crypt_free_buffer_pages(cc, clone);
1373 bio_put(clone);
1374 gfp_mask |= __GFP_DIRECT_RECLAIM;
1375 goto retry;
1376 }
1377
1378 len = (remaining_size > PAGE_SIZE) ? PAGE_SIZE : remaining_size;
1379
1380 bio_add_page(clone, page, len, 0);
1381
1382 remaining_size -= len;
1383 }
1384
1385 return_clone:
1386 if (unlikely(gfp_mask & __GFP_DIRECT_RECLAIM))
1387 mutex_unlock(&cc->bio_alloc_lock);
1388
1389 /* Allocate space for integrity tags */
1390 if (dm_crypt_integrity_io_alloc(io, clone)) {
^^^^^
Oops inside new function call.
1391 crypt_free_buffer_pages(cc, clone);
1392 bio_put(clone);
regards,
dan carpenter
More information about the dm-devel
mailing list