Module Name: src Committed By: joerg Date: Fri Jun 15 21:59:40 UTC 2012
Modified Files: src/sys/fs/hfs: libhfs.c Log Message: Assert that out_hr is not NULL in hfslib_read_header_node To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/fs/hfs/libhfs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/fs/hfs/libhfs.c diff -u src/sys/fs/hfs/libhfs.c:1.10 src/sys/fs/hfs/libhfs.c:1.11 --- src/sys/fs/hfs/libhfs.c:1.10 Thu Feb 24 23:49:26 2011 +++ src/sys/fs/hfs/libhfs.c Fri Jun 15 21:59:39 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: libhfs.c,v 1.10 2011/02/24 23:49:26 christos Exp $ */ +/* $NetBSD: libhfs.c,v 1.11 2012/06/15 21:59:39 joerg Exp $ */ /*- * Copyright (c) 2005, 2007 The NetBSD Foundation, Inc. @@ -47,7 +47,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: libhfs.c,v 1.10 2011/02/24 23:49:26 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: libhfs.c,v 1.11 2012/06/15 21:59:39 joerg Exp $"); #include "libhfs.h" @@ -1658,34 +1658,32 @@ hfslib_read_header_node(void** in_recs, { void* ptr; int i; - + + KASSERT(out_hr != NULL); + if(in_recs==NULL || in_rec_sizes==NULL) return 0; - if(out_hr!=NULL) - { - ptr = in_recs[0]; - - out_hr->tree_depth = be16tohp(&ptr); - out_hr->root_node = be32tohp(&ptr); - out_hr->leaf_recs = be32tohp(&ptr); - out_hr->first_leaf = be32tohp(&ptr); - out_hr->last_leaf = be32tohp(&ptr); - out_hr->node_size = be16tohp(&ptr); - out_hr->max_key_len = be16tohp(&ptr); - out_hr->total_nodes = be32tohp(&ptr); - out_hr->free_nodes = be32tohp(&ptr); - out_hr->reserved = be16tohp(&ptr); - out_hr->clump_size = be32tohp(&ptr); - out_hr->btree_type = *(((uint8_t*)ptr)); - ptr = (uint8_t*)ptr + 1; - out_hr->keycomp_type = *(((uint8_t*)ptr)); - ptr = (uint8_t*)ptr + 1; - out_hr->attributes = be32tohp(&ptr); - for(i=0;i<16;i++) - out_hr->reserved2[i] = be32tohp(&ptr); - } - + ptr = in_recs[0]; + out_hr->tree_depth = be16tohp(&ptr); + out_hr->root_node = be32tohp(&ptr); + out_hr->leaf_recs = be32tohp(&ptr); + out_hr->first_leaf = be32tohp(&ptr); + out_hr->last_leaf = be32tohp(&ptr); + out_hr->node_size = be16tohp(&ptr); + out_hr->max_key_len = be16tohp(&ptr); + out_hr->total_nodes = be32tohp(&ptr); + out_hr->free_nodes = be32tohp(&ptr); + out_hr->reserved = be16tohp(&ptr); + out_hr->clump_size = be32tohp(&ptr); + out_hr->btree_type = *(((uint8_t*)ptr)); + ptr = (uint8_t*)ptr + 1; + out_hr->keycomp_type = *(((uint8_t*)ptr)); + ptr = (uint8_t*)ptr + 1; + out_hr->attributes = be32tohp(&ptr); + for(i=0;i<16;i++) + out_hr->reserved2[i] = be32tohp(&ptr); + if(out_userdata!=NULL) { memcpy(out_userdata, in_recs[1], in_rec_sizes[1]);