Skip to content

Commit

Permalink
Fixes referencing local ProvRegEntry variable out of scope issue for …
Browse files Browse the repository at this point in the history
…_HandleGetClassReq. (#41)

Fixes referencing local ProvRegEntry variable out of scope issue for _HandleGetClassReq.
  • Loading branch information
JumpingYang001 committed Dec 7, 2022
1 parent ab9a3de commit 0b31515
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions Unix/disp/disp.c
Expand Up @@ -602,8 +602,7 @@ static MI_Result _HandleGetClassReq(
_In_ GetClassReq* req)
{
MI_Result r;
const ProvRegEntry* reg;
ProvRegEntry freg;
ProvRegEntry* reg;
ProvRegPosition pos;

/* Validate input parameters */
Expand All @@ -616,8 +615,6 @@ static MI_Result _HandleGetClassReq(
if(Tcscmp(req->className, PAL_T("*")) == 0)
return MI_RESULT_INVALID_CLASS;

memset( &freg, 0, sizeof(freg) );

// Find a provider for this class.
reg = ProvReg_FindProviderForClass(&self->provreg, req->nameSpace,
req->className, &r );
Expand Down Expand Up @@ -647,9 +644,17 @@ static MI_Result _HandleGetClassReq(
if (MI_RESULT_OK == r)
{
DEBUG_ASSERT(pos.start != NULL);
MapRegPositionValuesToRegEntry(&freg, &pos);
freg.nameSpace = req->nameSpace;
freg.nameSpaceHash = Hash(req->nameSpace);
reg = (ProvRegEntry*)Batch_GetClear(req->base.base.batch, sizeof(ProvRegEntry));
if(reg)
{
MapRegPositionValuesToRegEntry(reg, &pos);
reg->nameSpace = req->nameSpace;
reg->nameSpaceHash = Hash(req->nameSpace);
}
else
{
r = MI_RESULT_FAILED;
}
}
}

Expand All @@ -661,13 +666,9 @@ static MI_Result _HandleGetClassReq(
goto sendErrorBack;
}
}
else
{
freg = *reg;
}

// Send the request to provider manager.
r = AgentMgr_HandleRequest(&self->agentmgr, interactionParams, &freg);
r = AgentMgr_HandleRequest(&self->agentmgr, interactionParams, reg);

if (r != MI_RESULT_OK)
{
Expand All @@ -680,6 +681,7 @@ static MI_Result _HandleGetClassReq(

sendErrorBack:
// Just abort creating any interaction at all

return r;
}

Expand Down

0 comments on commit 0b31515

Please sign in to comment.