mirror of
https://github.com/jfdelnero/HxCFloppyEmulator.git
synced 2026-10-26 22:10:31 +00:00
CodeQL : Potential use after free & Potential double free fix.
This commit is contained in:
1 parent
3c9ab41127
commit
3da5472266
2 files changed
+15
-2
No files matched your search
@@ -320,13 +320,17 @@ RETCODE adfCreateBitmap(struct Volume *vol)
|
||||
vol->bitmapBlocksChg = (BOOL*) calloc(1,sizeof(BOOL)*mapSize);
|
||||
if (!vol->bitmapBlocksChg) {
|
||||
free(vol->bitmapTable);
|
||||
vol->bitmapTable = NULL;
|
||||
(*adfEnv.eFct)("adfCreateBitmap : malloc, vol->bitmapBlocksChg");
|
||||
return RC_MALLOC;
|
||||
}
|
||||
|
||||
vol->bitmapBlocks = (SECTNUM*) calloc(1,sizeof(SECTNUM)*mapSize);
|
||||
if (!vol->bitmapBlocks) {
|
||||
free(vol->bitmapTable); free(vol->bitmapBlocksChg);
|
||||
free(vol->bitmapTable);
|
||||
vol->bitmapTable = NULL;
|
||||
free(vol->bitmapBlocksChg);
|
||||
vol->bitmapBlocksChg = NULL;
|
||||
(*adfEnv.eFct)("adfCreateBitmap : malloc, vol->bitmapBlocks");
|
||||
return RC_MALLOC;
|
||||
}
|
||||
@@ -334,10 +338,12 @@ RETCODE adfCreateBitmap(struct Volume *vol)
|
||||
for(i=0; i<mapSize; i++) {
|
||||
vol->bitmapTable[i] = (struct bBitmapBlock*)calloc(1,sizeof(struct bBitmapBlock));
|
||||
if (!vol->bitmapTable[i]) {
|
||||
free(vol->bitmapTable); free(vol->bitmapBlocksChg);
|
||||
free(vol->bitmapBlocksChg);
|
||||
vol->bitmapBlocksChg = NULL;
|
||||
for(j=0; j<i; j++)
|
||||
free(vol->bitmapTable[j]);
|
||||
free(vol->bitmapTable);
|
||||
vol->bitmapTable = NULL;
|
||||
(*adfEnv.eFct)("adfCreateBitmap : malloc");
|
||||
return RC_MALLOC;
|
||||
}
|
||||
|
||||
@@ -638,8 +638,14 @@ RETCODE adfCreateHd(struct Device* dev, int n, struct Partition** partList )
|
||||
/* pas fini */
|
||||
}
|
||||
free(dev->volList);
|
||||
dev->volList = NULL;
|
||||
dev->nVol = 0;
|
||||
|
||||
(*adfEnv.eFct)("adfCreateHd : adfCreateVol() fails");
|
||||
|
||||
return RC_ERROR;
|
||||
}
|
||||
|
||||
dev->volList[i]->blockSize = 512;
|
||||
}
|
||||
dev->nVol = n;
|
||||
@@ -651,6 +657,7 @@ printf("0first=%ld last=%ld root=%ld\n",vol->firstBlock,
|
||||
|
||||
if (adfCreateHdHeader(dev, n, partList )!=RC_OK)
|
||||
return RC_ERROR;
|
||||
|
||||
return RC_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user