Skip to content

Conversation

@svc-rdkeportal01
Copy link

@svc-rdkeportal01 svc-rdkeportal01 commented Dec 1, 2025

Fix Coverity RESOURCE_LEAK in TokenChain Tests

Coverity Issue Fixed

Coverity CID 137

Root Cause

Test cases were incorrectly using free(tokens) instead of TokenChain_destroy(tokens).

Changes

Fixed 4 test cases in rbusTokenTest.cpp:

  • negtestToken2 (line 45)
  • negtestToken3 (line 58)
  • negtestToken4 (line 75)
  • negtestToken5 (line 91)

Impact

✅ Fixes memory leak in test cases
✅ Uses correct API for TokenChain cleanup
✅ Consistent with production code usage
✅ NULL-safe cleanup

Fixes Coverity defect CID 137
Fix generated by RDKDevPilot AI Bot with enhanced validation

Root Cause:
Test cases were incorrectly using free(tokens) instead of the proper
TokenChain_destroy(tokens) cleanup function. While free() works for
NULL pointers, it doesn't properly clean up the TokenChain structure
and associated Token objects when tokens is non-NULL.

The TokenChain_destroy() function already exists and is used correctly
in production code (rbus_subscriptions.c), but test cases were using
the wrong cleanup method.

Changes:
- Replace free(tokens) with TokenChain_destroy(tokens) in 4 test cases:
  * negtestToken2 (line 45)
  * negtestToken3 (line 58)
  * negtestToken4 (line 75)
  * negtestToken5 (line 91)

Impact:
- Fixes potential memory leaks in test cases
- Uses correct API for TokenChain cleanup
- Consistent with production code usage
- TokenChain_destroy() is NULL-safe, so behavior unchanged for NULL tokens

Why This Matters:
- Tests should demonstrate correct API usage
- free() only frees the TokenChain struct, not the Token list
- TokenChain_destroy() properly frees all associated resources
- Prevents confusion for developers reading test code

Coverity CID 137: Line 219, function TokenChain_create()
Note: The actual leak was in test code cleanup, not TokenChain_create()

Validation scores: Pipeline 95/100, Pattern 84/100
@svc-rdkeportal01 svc-rdkeportal01 requested a review from a team as a code owner December 1, 2025 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants