Skip to content

Add sandboxing, fix memory leaks, and fix documentation build#2

Closed
davidnich wants to merge 2 commits intodevelopfrom
fix/docs-and-memory-leaks
Closed

Add sandboxing, fix memory leaks, and fix documentation build#2
davidnich wants to merge 2 commits intodevelopfrom
fix/docs-and-memory-leaks

Conversation

@davidnich
Copy link
Member

Summary

  • Add QoreSandboxManagerHelper filesystem access checks before all file I/O operations
  • Add qore_check_io_interrupt() calls before blocking I/O for interruptible I/O support
  • Fix memory leaks: add ReferenceHolder for QPP object parameters per Object Parameter Handling pattern
  • Fix double-ref leak in CairoContext constructor
  • Add private constructors to CairoSurface and CairoPattern for proper QPP lifecycle
  • Fix documentation build: add footer template, implement two-phase doc build per qore-module-structure.md, fix Doxygen warnings

Test plan

  • All 20 core test cases pass (88 assertions)
  • All 22 data provider test cases pass (85 assertions)
  • Valgrind shows 0 module leaks (only 1,280 bytes from Cairo/fontconfig internals)
  • make docs builds successfully with two-phase doc build

🤖 Generated with Claude Code

davidnich and others added 2 commits February 16, 2026 09:12
- Add QoreSandboxManager filesystem access checks before all file I/O
  operations in CairoSurface (SVG/PS create, PNG load/write) and
  CairoSvgReader (SVG file load)
- Add qore_check_io_interrupt() calls before blocking I/O for
  interruptible I/O support
- Fix memory leaks: add ReferenceHolder for QPP object parameters in
  setSourceSurface, setSource, createForSurface, and renderTo per
  QPP Object Parameter Handling pattern
- Fix double-ref leak in CairoContext constructor (HARD_QORE_VALUE_OBJ_DATA
  already adds reference via getReferencedPrivateData)
- Add private constructors to CairoSurface and CairoPattern for proper
  QPP lifecycle management

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d fix warnings

- Add docs/footer_template.html required by Doxygen template
- Implement two-phase doc build in CMakeLists.txt per qore-module-structure.md:
  initial pass suppresses WARN_IF_DOC_ERROR, final pass includes
  CairoDataProvider.tag for cross-module references
- Escape <action> in data provider doc comments to prevent Doxygen HTML
  tag warnings
- Note: build requires cmake -DCMAKE_INSTALL_PREFIX=/usr to match Qore
  installation prefix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@davidnich
Copy link
Member Author

Changes already merged to develop; closing stale PR.

@davidnich davidnich closed this Feb 16, 2026
@davidnich davidnich deleted the fix/docs-and-memory-leaks branch February 16, 2026 14:13
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

Comments