Skip to content

Memory leak fix#39

Open
sunilnom wants to merge 4 commits into
OpenVisualCloud:mainfrom
sunilnom:mem-leak-fix
Open

Memory leak fix#39
sunilnom wants to merge 4 commits into
OpenVisualCloud:mainfrom
sunilnom:mem-leak-fix

Conversation

@sunilnom

Copy link
Copy Markdown
Contributor

Description

Checklist

Code Quality

  • Code follows project style guidelines
  • No unnecessary debug logs or commented-out code
  • No hardcoded values / secrets

Testing

  • Unit test added/modified accordingly
  • Perform manual basic sanity testing at system level

Review Readiness

  • PR title and description are clear and meaningful
  • Story/Task IDs are linked

Documentation

  • README or relevant docs updated (if applicable)

Security

  • No sensitive data exposed (keys, passwords, tokens)
  • Input validation added where needed

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Documentation content changes
  • Testing
  • Other... Please describe:

sunilnom added 4 commits July 7, 2026 14:43
Squashes the following multiple_nic branch commits prior to rebasing onto
upstream/main (which independently merged the scaling_tx feature as OpenVisualCloud#32):
  24c825d feat: add 2K/4K resolution support and rename config files
  6df149d feat: add video scaling support (upscale/downscale)
  7ba414c fix: address PR review comments
  084b8cd feat: multi-NIC support for FFmpeg and direct MTL TX paths
  72418ec fix: use shared frame counter for RTP timestamps in multi-session TX
  5313ed5 feat: multi-NIC and scaling TX support from scaling_tx branch
  3cc5866 Remove hardcoded MAX_TX_SESSIONS/MAX_INTERFACES limits
  f88c35c fix: address PR review comments (round 2)
…olve_ip_fails stub

- config/*.json: unify tx_video.fmt to yuv422p10le and video.tx_url to the
  ball_<res>_yuv422p10_<fps>fps_<duration>.mp4 naming pattern; drop hardcoded
  absolute sample paths in favor of relative filenames.
- tests/test_main.c: load_and_apply_config stub now always allocates the nic
  array so resolve_ip_addrs() is properly exercised when
  stub_load_config_set_ips is false, instead of leaving nic_count == 0 which
  let tx_app_real_main() fall into the infinite transmit loop and hang/timeout
  the whole test binary.
- Add dvledtx_config_free() calls after parse_tx_config() in fuzz
  harnesses (AFL and libFuzzer) to prevent per-iteration leaks that
  could cause OOM during long fuzzing runs.
- Add missing dvledtx_config_free(&cfg) calls in test_config_reader.c
  test functions that call parse_tx_config() directly without freeing
  the resulting dynamically-allocated arrays.

Confirmed via AddressSanitizer: parse_tx_config()/config_reader.c
itself is correct (its only production caller, load_and_apply_config(),
already frees on every path); the leaks were only in callers that
never freed the parsed config.
# Conflicts:
#	tests/test_config_reader.c
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.

1 participant