未验证 提交 eb3d124b 编写于 作者: J Jialun 提交者: GitHub

Fix potential bugs reported by CoverityScan (#5105)

- Change strncpy to StrNCpy, make sure dest string be terminated
- Initilize some variables before use it.
上级 c8f6891d
......@@ -278,7 +278,6 @@ DropResourceGroup(DropResourceGroupStmt *stmt)
ScanKeyData scankey;
SysScanDesc sscan;
Oid groupid;
ResGroupCaps caps;
ResourceGroupCallbackContext *callbackCtx;
/* Permission check - only superuser can drop resource groups. */
......@@ -480,7 +479,7 @@ AlterResourceGroup(AlterResourceGroupStmt *stmt)
caps.memAuditor = value;
break;
case RESGROUP_LIMIT_TYPE_CPUSET:
strncpy(caps.cpuset, cpuset, sizeof(caps.cpuset));
StrNCpy(caps.cpuset, cpuset, sizeof(caps.cpuset));
caps.cpuRateLimit = CPU_RATE_LIMIT_DISABLED;
break;
default:
......@@ -627,7 +626,7 @@ GetResGroupCapabilities(Relation rel, Oid groupId, ResGroupCaps *resgroupCaps)
getResgroupOptionName(type));
break;
case RESGROUP_LIMIT_TYPE_CPUSET:
strncpy(resgroupCaps->cpuset, proposed, sizeof(resgroupCaps->cpuset));
StrNCpy(resgroupCaps->cpuset, proposed, sizeof(resgroupCaps->cpuset));
break;
default:
break;
......@@ -1038,7 +1037,7 @@ parseStmtOptions(CreateResourceGroupStmt *stmt, ResGroupCaps *caps)
{
const char *cpuset = defGetString(defel);
checkCpusetSyntax(cpuset);
strncpy(caps->cpuset, cpuset, sizeof(caps->cpuset));
StrNCpy(caps->cpuset, cpuset, sizeof(caps->cpuset));
caps->cpuRateLimit = CPU_RATE_LIMIT_DISABLED;
}
else
......@@ -1255,7 +1254,7 @@ updateResgroupCapabilityEntry(Relation rel,
if (limitType == RESGROUP_LIMIT_TYPE_CPUSET)
{
strncpy(stringBuffer, strValue, sizeof(stringBuffer));
StrNCpy(stringBuffer, strValue, sizeof(stringBuffer));
}
else
{
......
......@@ -667,7 +667,7 @@ readStr(Oid group, const char *base, const char *comp, const char *prop, char *s
readData(path, data, datasize);
strncpy(str, data, len);
StrNCpy(str, data, len);
}
/*
......@@ -1176,7 +1176,7 @@ ResGroupOps_AssignGroup(Oid group, ResGroupCaps *caps, int pid)
if (caps != NULL)
{
oldCaps.cpuRateLimit = caps->cpuRateLimit;
strncpy(oldCaps.cpuset, caps->cpuset, sizeof(oldCaps.cpuset));
StrNCpy(oldCaps.cpuset, caps->cpuset, sizeof(oldCaps.cpuset));
}
}
......
......@@ -2450,7 +2450,7 @@ void
SwitchResGroupOnSegment(const char *buf, int len)
{
Oid newGroupId;
ResGroupCaps caps;
ResGroupCaps caps = {0};
ResGroupData *group;
ResGroupSlotData *slot;
......@@ -3809,7 +3809,7 @@ bool CpusetIsEmpty(const char *cpuset)
*/
void SetCpusetEmpty(char *cpuset, int cpusetSize)
{
strncpy(cpuset, DefaultCpuset, cpusetSize);
StrNCpy(cpuset, DefaultCpuset, cpusetSize);
}
/*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册