svn commit: r313451 - head/sys/boot/common
Toomas Soome
tsoome at FreeBSD.org
Wed Feb 8 18:32:54 UTC 2017
Author: tsoome
Date: Wed Feb 8 18:32:53 2017
New Revision: 313451
URL: https://svnweb.freebsd.org/changeset/base/313451
Log:
loader: possible NULL pointer dereference in bcache.c
Coverity detected the possible NULL pointer dereference case.
Also updated comment as was suggested in illumos review.
CID: 1371008
Reported by: Coverity
Reviewed by: allanjude
Approved by: allanjude (mentor)
Differential Revision: https://reviews.freebsd.org/D9496
Modified:
head/sys/boot/common/bcache.c
Modified: head/sys/boot/common/bcache.c
==============================================================================
--- head/sys/boot/common/bcache.c Wed Feb 8 18:32:35 2017 (r313450)
+++ head/sys/boot/common/bcache.c Wed Feb 8 18:32:53 2017 (r313451)
@@ -224,13 +224,13 @@ read_strategy(void *devdata, int rw, dad
caddr_t p_buf;
uint32_t *marker;
- marker = (uint32_t *)(bc->bcache_data + bc->bcache_nblks * bcache_blksize);
-
if (bc == NULL) {
errno = ENODEV;
return (-1);
}
+ marker = (uint32_t *)(bc->bcache_data + bc->bcache_nblks * bcache_blksize);
+
if (rsize != NULL)
*rsize = 0;
@@ -290,10 +290,9 @@ read_strategy(void *devdata, int rw, dad
* And secondly, this way we get the most conservative setup for the ra.
*
* The selection of multiple of 16 blocks (8KB) is quite arbitrary, however,
- * we want to have the CD (2K) and the 4K disks to be covered.
- * Also, as we have 32 blocks to be allocated as the fallback value in the
- * bcache_allocate(), the 16 ra blocks will allow the read ahead
- * to be used even with bcache this small.
+ * we want to cover CDs (2K) and 4K disks.
+ * bcache_allocate() will always fall back to a minimum of 32 blocks.
+ * Our choice of 16 read ahead blocks will always fit inside the bcache.
*/
ra = bc->bcache_nblks - BHASH(bc, p_blk + p_size);
More information about the svn-src-all
mailing list