diff options
author | Maxim Sobolev <sobomax@FreeBSD.org> | 2018-11-23 22:36:56 +0000 |
---|---|---|
committer | Maxim Sobolev <sobomax@FreeBSD.org> | 2018-11-23 22:36:56 +0000 |
commit | 6c81fe160cb922d35cc740e2fa8be1a9467d139f (patch) | |
tree | 76457fec7283ee4163478d3b1f0f553213009962 /stand/common/bcache.c | |
parent | 6d2e2df764199f0a15fd743e79599391959cc17d (diff) | |
download | src-6c81fe160cb922d35cc740e2fa8be1a9467d139f.tar.gz src-6c81fe160cb922d35cc740e2fa8be1a9467d139f.zip |
Nuke out buffer overflow safety marker code, it duplicates similar code in
the malloc()/free() as well as having potential of softening the handling
in case error is detected down to a mere warning as compared to hard panic
in free().
Submitted by: tsoome
Differential Revision: https://reviews.freebsd.org/D18299
Notes
Notes:
svn path=/head/; revision=340857
Diffstat (limited to 'stand/common/bcache.c')
-rw-r--r-- | stand/common/bcache.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/stand/common/bcache.c b/stand/common/bcache.c index 198dd5f3b7ae..39e8e35a559d 100644 --- a/stand/common/bcache.c +++ b/stand/common/bcache.c @@ -86,7 +86,6 @@ static u_int bcache_rablks; ((bc)->bcache_ctl[BHASH((bc), (blkno))].bc_blkno != (blkno)) #define BCACHE_READAHEAD 256 #define BCACHE_MINREADAHEAD 32 -#define BCACHE_MARKER 0xdeadbeef static void bcache_invalidate(struct bcache *bc, daddr_t blkno); static void bcache_insert(struct bcache *bc, daddr_t blkno); @@ -123,7 +122,6 @@ bcache_allocate(void) u_int i; struct bcache *bc = malloc(sizeof (struct bcache)); int disks = bcache_numdev; - uint32_t *marker; if (disks == 0) disks = 1; /* safe guard */ @@ -142,8 +140,7 @@ bcache_allocate(void) bc->bcache_nblks = bcache_total_nblks >> i; bcache_unit_nblks = bc->bcache_nblks; - bc->bcache_data = malloc(bc->bcache_nblks * bcache_blksize + - sizeof(uint32_t)); + bc->bcache_data = malloc(bc->bcache_nblks * bcache_blksize); if (bc->bcache_data == NULL) { /* dont error out yet. fall back to 32 blocks and try again */ bc->bcache_nblks = 32; @@ -158,9 +155,6 @@ bcache_allocate(void) errno = ENOMEM; return (NULL); } - /* Insert cache end marker. */ - marker = (uint32_t *)(bc->bcache_data + bc->bcache_nblks * bcache_blksize); - *marker = BCACHE_MARKER; /* Flush the cache */ for (i = 0; i < bc->bcache_nblks; i++) { @@ -222,15 +216,12 @@ read_strategy(void *devdata, int rw, daddr_t blk, size_t size, int result; daddr_t p_blk; caddr_t p_buf; - uint32_t *marker; if (bc == NULL) { errno = ENODEV; return (-1); } - marker = (uint32_t *)(bc->bcache_data + bc->bcache_nblks * bcache_blksize); - if (rsize != NULL) *rsize = 0; @@ -350,12 +341,6 @@ read_strategy(void *devdata, int rw, daddr_t blk, size_t size, result = 0; } - if (*marker != BCACHE_MARKER) { - printf("BUG: bcache corruption detected: nblks: %zu p_blk: %lu, " - "p_size: %zu, ra: %zu\n", bc->bcache_nblks, - (long unsigned)BHASH(bc, p_blk), p_size, ra); - } - done: if ((result == 0) && (rsize != NULL)) *rsize = size; |