CodeQL : Potential use after free & Potential double free fix.

This commit is contained in:
Jean-François DEL NERO committed 2026-10-11 21:27:51 +02:00
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;
}