mirror of https://github.com/vmware/tdnf.git
Add wrap check in alloc routine
This commit is contained in:
parent
9fe08657ce
commit
be1dddab7a
10
client/api.c
10
client/api.c
|
@ -228,6 +228,7 @@ TDNFClean(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_CLEAN_INFO),
|
||||
(void**)&pCleanInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
@ -495,6 +496,7 @@ TDNFOpenHandle(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF),
|
||||
(void**)&pTdnf);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
@ -668,6 +670,7 @@ TDNFResolve(
|
|||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_SOLVED_PKG_INFO),
|
||||
(void**)&pSolvedPkgInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
@ -675,7 +678,8 @@ TDNFResolve(
|
|||
pSolvedPkgInfo->nAlterType = nAlterType;
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(char*) * pTdnf->pArgs->nCmdCount,
|
||||
pTdnf->pArgs->nCmdCount,
|
||||
sizeof(char*),
|
||||
(void**)&pSolvedPkgInfo->ppszPkgsNotResolved);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
|
@ -812,7 +816,8 @@ TDNFSearchCommand(
|
|||
}
|
||||
|
||||
unError = TDNFAllocateMemory(
|
||||
sizeof(TDNF_PKG_INFO) * unCount,
|
||||
unCount,
|
||||
sizeof(TDNF_PKG_INFO),
|
||||
(void**)&pPkgInfo);
|
||||
|
||||
BAIL_ON_TDNF_ERROR(unError);
|
||||
|
@ -902,6 +907,7 @@ TDNFUpdateInfo(
|
|||
for(iAdv = 0; iAdv < nCount; iAdv++)
|
||||
{
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_UPDATEINFO),
|
||||
(void**)&pInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
|
|
@ -53,7 +53,8 @@ TDNFCopyEnabledRepos(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(char**) * (nCount + 1),
|
||||
nCount + 1,
|
||||
sizeof(char**),
|
||||
(void**)&ppszReposUsed);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
|
|
|
@ -74,6 +74,7 @@ TDNFReadConfig(
|
|||
if(g_key_file_has_group(pKeyFile, pszGroup))
|
||||
{
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_CONF),
|
||||
(void**)&pConf);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
|
|
@ -137,6 +137,7 @@ typedef enum
|
|||
{ERROR_TDNF_SET_PROXY_USERPASS, "ERROR_TDNF_SET_PROXY_USERPASS", "There was an error setting the proxy server user and pass"}, \
|
||||
{ERROR_TDNF_NO_DISTROVERPKG, "ERROR_TDNF_NO_DISTROVERPKG", "distroverpkg config entry is set to a package that is not installed. Check /etc/tdnf/tdnf.conf"}, \
|
||||
{ERROR_TDNF_DISTROVERPKG_READ, "ERROR_TDNF_DISTROVERPKG_READ", "There was an error reading version of distroverpkg"}, \
|
||||
{ERROR_TDNF_INVALID_ALLOCSIZE, "ERROR_TDNF_INVALID_ALLOCSIZE", "A memory allocation was requested with an invalid size"}, \
|
||||
{ERROR_TDNF_NO_ENABLED_REPOS, "ERROR_TDNF_NO_ENABLED_REPOS", "There are no enabled repos.\n Run ""tdnf repolist all"" to see the repos you have.\n You can enable repos by editing repo files in your repodir(usually /etc/yum.repos.d)"}, \
|
||||
{ERROR_TDNF_PACKAGELIST_EMPTY, "ERROR_TDNF_PACKAGELIST_EMPTY", "Packagelist was empty"}, \
|
||||
{ERROR_TDNF_GOAL_CREATE, "ERROR_TDNF_GOAL_CREATE", "Error creating goal"}, \
|
||||
|
|
|
@ -188,6 +188,7 @@ TDNFGoalGetAllResultsIgnoreNoData(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_SOLVED_PKG_INFO),
|
||||
(void**)&pInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
|
|
@ -106,6 +106,7 @@ TDNFCloneCmdArgs(
|
|||
PTDNF_CMD_ARGS pCmdArgs = NULL;
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_CMD_ARGS),
|
||||
(void**)&pCmdArgs);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
@ -134,7 +135,8 @@ TDNFCloneCmdArgs(
|
|||
|
||||
pCmdArgs->nCmdCount = pCmdArgsIn->nCmdCount;
|
||||
dwError = TDNFAllocateMemory(
|
||||
pCmdArgs->nCmdCount * sizeof(char*),
|
||||
pCmdArgs->nCmdCount,
|
||||
sizeof(char*),
|
||||
(void**)&pCmdArgs->ppszCmds
|
||||
);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
|
|
@ -22,20 +22,27 @@
|
|||
|
||||
uint32_t
|
||||
TDNFAllocateMemory(
|
||||
size_t size,
|
||||
size_t nNumElements,
|
||||
size_t nSize,
|
||||
void** ppMemory
|
||||
)
|
||||
{
|
||||
uint32_t dwError = 0;
|
||||
void* pMemory = NULL;
|
||||
|
||||
if (!ppMemory || !size)
|
||||
if (!ppMemory || !nSize || !nNumElements)
|
||||
{
|
||||
dwError = ERROR_TDNF_INVALID_PARAMETER;
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
}
|
||||
|
||||
pMemory = calloc(1, size);
|
||||
if(nNumElements > SIZE_MAX/nSize)
|
||||
{
|
||||
dwError = ERROR_TDNF_INVALID_ALLOCSIZE;
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
}
|
||||
|
||||
pMemory = calloc(nNumElements, nSize);
|
||||
if (!pMemory)
|
||||
{
|
||||
dwError = ERROR_TDNF_OUT_OF_MEMORY;
|
||||
|
|
|
@ -356,6 +356,7 @@ TDNFPopulatePkgInfos(
|
|||
FOR_PACKAGELIST(hPkg, hPkgList, nIndex)
|
||||
{
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_PKG_INFO),
|
||||
(void**)&pPkgInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
@ -456,7 +457,8 @@ TDNFPopulatePkgInfoArray(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(TDNF_PKG_INFO) * dwCount,
|
||||
dwCount,
|
||||
sizeof(TDNF_PKG_INFO),
|
||||
(void**)&pPkgInfo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
|
|
|
@ -617,17 +617,6 @@ TDNFFreePackageInfoContents(
|
|||
PTDNF_PKG_INFO pPkgInfo
|
||||
);
|
||||
|
||||
uint32_t
|
||||
TDNFAllocateMemory(
|
||||
size_t size,
|
||||
void** ppMemory
|
||||
);
|
||||
|
||||
void
|
||||
TDNFFreeMemory(
|
||||
void* pMemory
|
||||
);
|
||||
|
||||
void
|
||||
TDNFFreeCmdOpt(
|
||||
PTDNF_CMD_OPT pCmdOpt
|
||||
|
|
|
@ -160,7 +160,7 @@ TDNFLoadReposFromFile(
|
|||
{
|
||||
pszRepo = ppszRepos[i];
|
||||
|
||||
dwError = TDNFAllocateMemory(sizeof(TDNF_REPO_DATA), (void**)&pRepo);
|
||||
dwError = TDNFAllocateMemory(1, sizeof(TDNF_REPO_DATA), (void**)&pRepo);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
dwError = TDNFAllocateString(pszRepo, &pRepo->pszId);
|
||||
|
|
|
@ -113,7 +113,7 @@ TDNFAllocateStringPrintf(
|
|||
}
|
||||
|
||||
nSize = nSize + 1;
|
||||
dwError = TDNFAllocateMemory(nSize, (void**)&pszDst);
|
||||
dwError = TDNFAllocateMemory(1, nSize, (void**)&pszDst);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
va_start(argList, pszFmt);
|
||||
|
@ -180,7 +180,7 @@ TDNFAllocateStringN(
|
|||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(dwNumElements + 1, (void**)&pszDst);
|
||||
dwError = TDNFAllocateMemory(dwNumElements + 1, 1, (void**)&pszDst);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
strncpy(pszDst, pszSrc, dwNumElements);
|
||||
|
|
|
@ -51,7 +51,8 @@ TDNFUpdateInfoSummary(
|
|||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(TDNF_UPDATEINFO_SUMMARY) * (nTypeCount+1),
|
||||
nTypeCount + 1,
|
||||
sizeof(TDNF_UPDATEINFO_SUMMARY),
|
||||
(void**)&pSummary);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
|
@ -198,6 +199,7 @@ TDNFGetUpdateInfoPackages(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_UPDATEINFO_PKG),
|
||||
(void**)&pPkg);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
|
|
@ -48,7 +48,7 @@ TDNFUtilsFormatSize(
|
|||
nIndex++;
|
||||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(nMaxSize, (void**)&pszFormattedSize);
|
||||
dwError = TDNFAllocateMemory(1, nMaxSize, (void**)&pszFormattedSize);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
if(sprintf(pszFormattedSize, "%.2f %c", dSize, pszSizes[nIndex]) < 0)
|
||||
|
|
|
@ -189,7 +189,8 @@ TDNFUtilsFormatSize(
|
|||
//apis to allocate and free memory
|
||||
uint32_t
|
||||
TDNFAllocateMemory(
|
||||
size_t size,
|
||||
size_t nNumElements,
|
||||
size_t nSize,
|
||||
void** ppMemory
|
||||
);
|
||||
|
||||
|
|
|
@ -58,6 +58,8 @@ extern "C" {
|
|||
#define ERROR_TDNF_SET_PROXY_USERPASS 1021
|
||||
#define ERROR_TDNF_NO_DISTROVERPKG 1022
|
||||
#define ERROR_TDNF_DISTROVERPKG_READ 1023
|
||||
//
|
||||
#define ERROR_TDNF_INVALID_ALLOCSIZE 1024
|
||||
|
||||
//Hawkey errors 1300 to 1399
|
||||
#define ERROR_TDNF_HAWKEY_BASE 1300
|
||||
|
|
|
@ -72,6 +72,7 @@ TDNFCliParseArgs(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_CMD_ARGS),
|
||||
(void**)&pCmdArgs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
@ -153,7 +154,8 @@ TDNFCliParseArgs(
|
|||
{
|
||||
pCmdArgs->nCmdCount = argc-optind;
|
||||
dwError = TDNFAllocateMemory(
|
||||
pCmdArgs->nCmdCount * sizeof(char*),
|
||||
pCmdArgs->nCmdCount,
|
||||
sizeof(char*),
|
||||
(void**)&pCmdArgs->ppszCmds);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
||||
|
@ -255,7 +257,8 @@ TDNFCliParsePackageArgs(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(char*) * (nPackageCount + 1),
|
||||
nPackageCount + 1,
|
||||
sizeof(char*),
|
||||
(void**)&ppszPackageArgs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ TDNFCliParseListArgs(
|
|||
BAIL_ON_CLI_ERROR(dwError);
|
||||
}
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_LIST_ARGS),
|
||||
(void**)&pListArgs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
@ -58,7 +59,8 @@ TDNFCliParseListArgs(
|
|||
//Copy the rest of the args as package name specs
|
||||
nPackageCount = pCmdArgs->nCmdCount - nStartIndex;
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(char*) * (nPackageCount + 1),
|
||||
nPackageCount + 1,
|
||||
sizeof(char*),
|
||||
(void**)&pListArgs->ppszPackageNameSpecs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ TDNFCliParseUpdateInfoArgs(
|
|||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(
|
||||
1,
|
||||
sizeof(TDNF_UPDATEINFO_ARGS),
|
||||
(void**)&pUpdateInfoArgs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
@ -80,7 +81,8 @@ TDNFCliParseUpdateInfoArgs(
|
|||
//Copy the rest of the args as package name specs
|
||||
nPackageCount = pCmdArgs->nCmdCount - nStartIndex;
|
||||
dwError = TDNFAllocateMemory(
|
||||
sizeof(char*) * (nPackageCount + 1),
|
||||
nPackageCount + 1,
|
||||
sizeof(char*),
|
||||
(void**)&pUpdateInfoArgs->ppszPackageNameSpecs);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ GetOptionAndValue(
|
|||
BAIL_ON_CLI_ERROR(dwError);
|
||||
}
|
||||
|
||||
dwError = TDNFAllocateMemory(sizeof(TDNF_CMD_OPT), (void**)&pCmdOpt);
|
||||
dwError = TDNFAllocateMemory(1, sizeof(TDNF_CMD_OPT), (void**)&pCmdOpt);
|
||||
BAIL_ON_CLI_ERROR(dwError);
|
||||
|
||||
dwError = TDNFAllocateString(pszOptArg, &pCmdOpt->pszOptName);
|
||||
|
|
Loading…
Reference in New Issue