mirror of https://github.com/vmware/tdnf.git
properly handle rename() and chmod() errors
This commit is contained in:
parent
859c1be4fe
commit
e72937d6ea
|
@ -668,10 +668,16 @@ TDNFDownloadFile(
|
|||
}
|
||||
else
|
||||
{
|
||||
dwError = rename(pszFileTmp, pszFile);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
dwError = chmod(pszFile, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
if (rename(pszFileTmp, pszFile) == -1)
|
||||
{
|
||||
dwError = errno;
|
||||
BAIL_ON_TDNF_SYSTEM_ERROR(dwError);
|
||||
}
|
||||
if (chmod(pszFile, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) == -1)
|
||||
{
|
||||
dwError = errno;
|
||||
BAIL_ON_TDNF_SYSTEM_ERROR(dwError);
|
||||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
|
|
|
@ -1345,9 +1345,11 @@ TDNFReplaceFile(
|
|||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
}
|
||||
/* coverity[toctou] */
|
||||
dwError = rename (pszSrcFile, pszDstFile);
|
||||
BAIL_ON_TDNF_ERROR(dwError);
|
||||
|
||||
if (rename(pszSrcFile, pszDstFile) == -1)
|
||||
{
|
||||
dwError = errno;
|
||||
BAIL_ON_TDNF_SYSTEM_ERROR(dwError);
|
||||
}
|
||||
cleanup:
|
||||
return dwError;
|
||||
error:
|
||||
|
|
|
@ -678,9 +678,9 @@ SolvCreateMetaDataCache(
|
|||
BAIL_ON_TDNF_LIBSOLV_ERROR(dwError);
|
||||
}
|
||||
|
||||
if (rename (pszTempSolvFile, pszCacheFilePath))
|
||||
if (rename(pszTempSolvFile, pszCacheFilePath) == -1)
|
||||
{
|
||||
dwError = ERROR_TDNF_INVALID_PARAMETER;
|
||||
dwError = ERROR_TDNF_SYSTEM_BASE + errno;
|
||||
BAIL_ON_TDNF_LIBSOLV_ERROR(dwError);
|
||||
}
|
||||
unlink(pszTempSolvFile);
|
||||
|
|
Loading…
Reference in New Issue