diff options
author | cperciva <cperciva@FreeBSD.org> | 2004-01-26 15:05:30 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2004-01-26 15:05:30 +0000 |
commit | 3a15ac7b11b935e1782804d428a4147f3f5fec27 (patch) | |
tree | 98dad340eeda79234192f74dcba37022c19180a8 /sbin/fsck_ffs/setup.c | |
parent | 7ce7ecdff6a94c18c2c9e30b1348c73f3e3a6175 (diff) | |
download | FreeBSD-src-3a15ac7b11b935e1782804d428a4147f3f5fec27.zip FreeBSD-src-3a15ac7b11b935e1782804d428a4147f3f5fec27.tar.gz |
Avoid dereferencing null pointers in fsck_ffs. (pfatal may return,
so it isn't a safe way of handling [mc]alloc failures.)
PR: misc/61800
Approved by: rwatson (mentor)
Diffstat (limited to 'sbin/fsck_ffs/setup.c')
-rw-r--r-- | sbin/fsck_ffs/setup.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c index f6e541d..5fb24c1 100644 --- a/sbin/fsck_ffs/setup.c +++ b/sbin/fsck_ffs/setup.c @@ -227,6 +227,11 @@ setup(char *dev) */ asked = 0; sblock.fs_csp = calloc(1, sblock.fs_cssize); + if (sblock.fs_csp == NULL) { + printf("cannot alloc %u bytes for cg summary info\n", + (unsigned)sblock.fs_cssize); + goto badsb; + } for (i = 0, j = 0; i < sblock.fs_cssize; i += sblock.fs_bsize, j++) { size = sblock.fs_cssize - i < sblock.fs_bsize ? sblock.fs_cssize - i : sblock.fs_bsize; |