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)
This commit is contained in:
Colin Percival 2004-01-26 15:05:30 +00:00
parent 211326affc
commit 96e3efc09f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=125036
2 changed files with 7 additions and 2 deletions

View File

@ -141,7 +141,7 @@ pass1(void)
}
info = calloc((unsigned)inosused, sizeof(struct inostat));
if (info == NULL)
pfatal("cannot alloc %u bytes for inoinfo\n",
errx(EEXIT, "cannot alloc %u bytes for inoinfo",
(unsigned)(sizeof(struct inostat) * inosused));
inostathead[c].il_stat = info;
/*
@ -175,7 +175,7 @@ pass1(void)
}
info = calloc((unsigned)inosused, sizeof(struct inostat));
if (info == NULL)
pfatal("cannot alloc %u bytes for inoinfo\n",
errx(EEXIT, "cannot alloc %u bytes for inoinfo",
(unsigned)(sizeof(struct inostat) * inosused));
memmove(info, inostathead[c].il_stat, inosused * sizeof(*info));
free(inostathead[c].il_stat);

View File

@ -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;