//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
if (_FileUtil::IsFileExist(pFilePath.get()) == false)
{
- SysLog(NID_IO, "[E_FILE_NOT_FOUND] File(%s) does not exist.", pFilePath.get());
+ SysSecureLogException(NID_IO, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] File (%s) does not exist.", pFilePath.get());
return E_FILE_NOT_FOUND;
}
ssize_t writtenBytes = -1;
ssize_t remainingBytes = -1;
char* pBuffer = null;
+ char* pCopyBuf = null;
result r = E_SUCCESS;
unique_ptr<char[]> pSrcpath(_StringConverter::CopyToCharArrayN(srcFilePath));
pBuffer = new (std::nothrow) char[_MAX_COPY_BYTES];
SysTryCatch(NID_IO, pBuffer != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
+ pCopyBuf = pBuffer;
do
{
do
{
- readBytes = read(srcFd, pBuffer, _MAX_COPY_BYTES);
+ readBytes = read(srcFd, pCopyBuf, _MAX_COPY_BYTES);
}
while (readBytes < 0 && errno == EINTR);
if (readBytes < 0)
RETRY:
do
{
- writtenBytes = write(dstFd, pBuffer, remainingBytes);
+ writtenBytes = write(dstFd, pCopyBuf, remainingBytes);
}
while (writtenBytes < 0 && errno == EINTR);
if (writtenBytes < 0)
else if (writtenBytes < remainingBytes)
{
remainingBytes = remainingBytes - writtenBytes;
- pBuffer = const_cast< char* >(pBuffer) + writtenBytes;
+ pCopyBuf = const_cast< char* >(pCopyBuf) + writtenBytes;
goto RETRY;
}
}
fsync(dstFd);
close(dstFd);
}
- delete pBuffer;
+ delete[] pBuffer;
return r;
}
GetErrorMessage(GetLastResult()));
struct stat64 statbuf;
- if (int ret = stat64(pFilePath.get(), &statbuf) == -1)
+ if (stat64(pFilePath.get(), &statbuf) == -1)
{
r = __ConvertNativeErrorToResult(errno);
- SysLogException(NID_IO, r, "[%s] Failed to get file (%s) status.", GetErrorMessage(r), pFilePath.get());
+ SysSecureLogException(NID_IO, r, "[%s] Failed to get file (%s) status. errno: %d (%s)",
+ GetErrorMessage(r), pFilePath.get(), errno, strerror(errno));
return r;
}
int pos = -1;
result r = filePath.LastIndexOf(L'/', filePath.GetLength() - 1, pos);
- SysTryReturn(NID_IO, !IsFailed(r), fileName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
+ SysTryReturn(NID_IO, r == E_SUCCESS || r == E_OBJ_NOT_FOUND, fileName, E_INVALID_ARG,
+ "[E_INVALID_ARG] The file path is invalid.");
r = filePath.SubString(pos + 1, fileName);
SysTryReturn(NID_IO, !IsFailed(r), fileName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
int pos = -1;
result r = filePath.LastIndexOf(L'/', filePath.GetLength() - 1, pos);
- SysTryReturn(NID_IO, !IsFailed(r), extName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
+ SysTryReturn(NID_IO, r == E_SUCCESS || r == E_OBJ_NOT_FOUND, extName, E_INVALID_ARG,
+ "[E_INVALID_ARG] The file path is invalid.");
String fileName;
r = filePath.SubString(pos + 1, fileName);