Skip to content

v1.6.3: Security, Stability and Testing Update

Choose a tag to compare

@github-actions github-actions released this 10 Jul 07:09

Added

  • CI / CD Pipeline: Upgraded .github/workflows/entry.yaml to run tests with the -race detector and -shuffle=on flags to ensure test stability and concurrency safety before any build.
  • Security guards against Path Traversal: Added rigorous filepath.Clean and strings.HasPrefix validation to watcher.go and client.go. This prevents malicious symlinks or filenames like ../../config.json from escaping the watch_dir and overwriting sensitive files.
  • Memory Exhaustion Protections (RAM Bomb): Implemented io.LimitReader (up to 5MB) when reading JSON API responses (like bittorrented) and .magnet files in the Watch Folder, preventing intentional OOM (Out Of Memory) attacks.
  • Directory Listing Prevention: Wrapped the /files/ endpoint in netutil.DisableDirListing to throw os.ErrNotExist (404) on directory access, strictly serving only specific files.
  • Scraper Mock Integration Tests: Built an entire mock-test suite in internal/tests for all 10 scrapers (1337x, BitTorrented, EZTV, FitGirl, Nyaa, PirateBay, RuTracker, SubsPlease, Torrents.csv, YTS). These tests act as a 1:1 simulation of Torlink's logic, asserting that Gorrent safely and accurately parses exact Torlink-style HTML/JSON payloads without ever hitting real internet services. The internal/tests folder and *_test.go files are entirely isolated and blocked from Docker via .dockerignore.

Fixed

  • 1337x Mirror Invalidations: Implemented a sync.RWMutex cache for the lastWorkingHost so the scraper dynamically falls back on other domains if one fails, drastically increasing reliability.
  • Daemon GC deduplication loop: Files are now proactively moved to handled/ before calling AddMagnet in watcher.go, preventing edge cases where the Daemon crashes between steps and downloads files twice.


📦 Downloads

Operating System Download Archive
Windows (x64) gorrent-1.6.3-windows-amd64.zip
Linux (x64) gorrent-1.6.3-linux-amd64.tar.gz
Linux (ARM64) gorrent-1.6.3-linux-arm64.tar.gz
macOS (Intel) gorrent-1.6.3-darwin-amd64.tar.gz
macOS (Apple Silicon) gorrent-1.6.3-darwin-arm64.tar.gz

Docker Images (multi‑arch: amd64 + arm64):

  • GHCR: docker pull ghcr.io/x-name15/gorrent:v1.6.3
  • GHCR Latest: docker pull ghcr.io/x-name15/gorrent:latest

View Full CHANGELOG