Signed-off-by: shikai-123 <lifansheng1@huawei.com>

Modify defects of sys
This commit is contained in:
shikai-123
2022-02-21 16:47:15 +08:00
parent c6a364ad98
commit 896d07b0d9
3 changed files with 19 additions and 14 deletions
+5 -5
View File
@@ -228,7 +228,7 @@ namespace OHOS::Js_sys_module::Process {
stdErrInfo_->isNeedRun = &isNeedRun_;
stdErrInfo_->fd = stdErrFd_[0];
stdErrInfo_->pid = optionsInfo_->pid;
stdErrInfo_->maxBuffSize = static_cast<size_t>(optionsInfo_->maxBuffer);
stdErrInfo_->maxBuffSize = optionsInfo_->maxBuffer;
napi_create_string_utf8(env_, "ReadStdErr", NAPI_AUTO_LENGTH, &resourceName);
napi_create_async_work(env_, nullptr, resourceName, ReadStdErr, EndStdErr,
reinterpret_cast<void*>(stdErrInfo_), &stdErrInfo_->worker);
@@ -243,8 +243,8 @@ namespace OHOS::Js_sys_module::Process {
return;
}
while (*(stdOutInfo->isNeedRun)) {
read(stdOutInfo->fd, childStdout, sizeof(childStdout) - 1);
if (strlen(childStdout) > 0) {
auto readSize = read(stdOutInfo->fd, childStdout, sizeof(childStdout) - 1);
if (readSize >= 0) {
stdOutInfo->stdData += childStdout;
}
if (stdOutInfo->stdData.size() > stdOutInfo->maxBuffSize && *(stdOutInfo->isNeedRun)) {
@@ -277,8 +277,8 @@ namespace OHOS::Js_sys_module::Process {
return;
}
while (*(stdErrInfo->isNeedRun)) {
read(stdErrInfo->fd, childStderr, sizeof(childStderr) - 1);
if (strlen(childStderr) > 0) {
auto readSize = read(stdErrInfo->fd, childStderr, sizeof(childStderr) - 1);
if (readSize >= 0) {
stdErrInfo->stdData += childStderr;
}
if (stdErrInfo->stdData.size() > stdErrInfo->maxBuffSize && *(stdErrInfo->isNeedRun)) {
+1 -1
View File
@@ -34,7 +34,7 @@ namespace OHOS::Js_sys_module::Process {
napi_value promise = nullptr;
std::string stdData = "";
bool *isNeedRun = nullptr;
size_t maxBuffSize;
int64_t maxBuffSize;
int fd = 0;
int pid = 0;
};
+13 -8
View File
@@ -210,7 +210,7 @@ namespace OHOS::Js_sys_module::Process {
void Process::Abort() const
{
abort();
exit(0);
}
void Process::On(napi_value str, napi_value function)
@@ -250,10 +250,14 @@ namespace OHOS::Js_sys_module::Process {
size_t bufferSize = 0;
bool flag = false;
NAPI_CALL(env_, napi_get_value_string_utf8(env_, str, buffer, 0, &bufferSize));
if (bufferSize > 0) {
buffer = new char[bufferSize + 1];
NAPI_ASSERT(env_, bufferSize > 0, "bufferSize == 0");
buffer = new char[bufferSize + 1];
if (memset_s(buffer, bufferSize + 1, 0, bufferSize + 1) != 0) {
HILOG_ERROR("buffer memset error");
delete []buffer;
return nullptr;
}
NAPI_CALL(env_, napi_get_value_string_utf8(env_, str, buffer, bufferSize + 1, &bufferSize));
napi_get_value_string_utf8(env_, str, buffer, bufferSize + 1, &bufferSize);
std::string temp = "";
if (buffer != nullptr) {
temp = buffer;
@@ -330,8 +334,9 @@ namespace OHOS::Js_sys_module::Process {
napi_value Process::GetEnvironmentVar(napi_value name) const
{
char *buffer = nullptr;
char *envvar = nullptr;
napi_value result = nullptr;
char buf[260 * NUM_OF_DATA] = { 0 }; // 260:Only numbers path String size is 260.
size_t length = sizeof(buf);
size_t bufferSize = 0;
napi_get_value_string_utf8(env_, name, buffer, 0, &bufferSize);
if (bufferSize > 0) {
@@ -344,12 +349,12 @@ namespace OHOS::Js_sys_module::Process {
delete []buffer;
buffer = nullptr;
}
envvar = getenv(temp.c_str());
if (envvar == nullptr) {
auto envNum = uv_os_getenv(temp.c_str(), buf, &length);
if (envNum == UV_ENOENT) {
NAPI_CALL(env_, napi_get_undefined(env_, &result));
return result;
}
napi_create_string_utf8(env_, envvar, strlen(envvar), &result);
napi_create_string_utf8(env_, buf, strlen(buf), &result);
return result;
}