Skip to content
This repository was archived by the owner on Oct 26, 2021. It is now read-only.

Commit 17f0cdc

Browse files
committed
Fix client validation in LifecycleRequestComplete
The client is validated by comparing the client handle and request ID received as a part of D-Bus call LifecycleRequestComplete. The reqeust ID is generated by converting the client handle to guint, which is 32 bit unsigned int. The client handle is a pointer which can be of 64 bits in size on 64 bit machine. The existing comparison between client handle and request ID is casting request ID to a pointer type, which can give wrong results when comparting against a 64 bit pointer. This patch fixes it by modifying the comparision to cast the client handle to 32 bit instead. Signed-off-by: Vishal Thanki <vishalthanki@gmail.com>
1 parent 253d10a commit 17f0cdc

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

NodeStateAccess/NodeStateAccess.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ static gboolean NSMA__boOnHandleLifecycleRequestComplete(NodeStateConsumer *
844844
NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
845845

846846
/* Check if the client is the one, we are waiting for. */
847-
if(NSMA__pCurrentLcConsumer == (NodeStateLifeCycleConsumer*) u32RequestId)
847+
if(u32RequestId == (guint) NSMA__pCurrentLcConsumer)
848848
{
849849
enErrorStatus = NsmErrorStatus_Ok;
850850
/* The client is the expected one. Pass the status to the NSM. */

0 commit comments

Comments
 (0)