Skip to content

v5.3.20

Latest

Choose a tag to compare

@xirvik xirvik released this 30 Oct 04:53

Security and privacy

  • Directories are kept inside $topDirectory once symbolic links are
    followed, not only as written. A user who can create links in their own
    tree could previously point the Add Torrent base directory, a datadir move,
    the httprpc default directory, AutoTools' finished and watch directories,
    unpack's output directory or create's source at a link leading outside it,
    and rtorrent or the plugin then wrote, moved, extracted or hashed data
    there.
  • The Add Torrent base directory is validated before anything reaches
    rtorrent: a value no filesystem can hold (a pasted URL or magnet link) is
    refused instead of loading a download that can never start, and a plain
    /name is read as a folder under the download area.
  • External links decode special-scheme hosts before checking them, so RSS and
    lookat no longer store links whose encoded host the browser refuses.
  • A task whose pid file reads as 1 is no longer killed as init's children.
  • The log warns about PHP below 8.0 and rTorrent below 0.16.27, which
    carries a fix for a buffer overflow in parsing a DNS reply.

Fixes

  • Torrent names and paths that are not UTF-8 keep their bytes: add-torrent
    notifications show them as \xNN instead of �, filesystem shell fallbacks
    quote them without depending on the locale (on 32-bit PHP a download over
    2 GiB next to such a name was sent with the wrong size), and three more
    basename() calls keep non-ASCII names on PHP 7.4, as does a non-ASCII move
    destination.
  • Fast resume records the paths the daemon will load, including the
    name.utf-8/path.utf-8 aliases libtorrent 0.16.25 and later use, so a
    resumed torrent no longer stays inactive with no message.
  • AutoTools uses the basename rtorrent wrote for a single-file torrent, and a
    download skipped by "Skip torrents that contain files matching the pattern"
    stays pointed at its data.
  • A private torrent's info hash is no longer randomized when adding it.
  • Malformed httprpc list responses are reported and refused before they reach
    the torrent list, which previously stopped updating until a reload.
  • The ratio plugin sets group limits through group2.* on 0.9.4 up to 0.15,
    where some patched 0.9.8 builds define only that, instead of failing to
    start and leaving rtorrent's built-in limits in force.
  • extsearch sizes its results to the layout.

Translations

  • The first line of the Log tab is translated.
  • The new log warnings are translated in every language file.

Tests

Shared helpers for byte-preserving display and shell quoting, and display
names taken from a torrent's own metadata, land ahead of their callers. rTorrent
probe fixtures are cleaned up after a failed setup.

What's Changed

  • Fix/add directory validation by @xirvik in #3469
  • Set ratio group limits through group2 below 0.15 by @xirvik in #3472
  • Warn in the log about an outdated PHP or rTorrent by @xirvik in #3473
  • Size the extsearch results by the layout by @xirvik in #3479
  • autotools: use the actual single-file basename by @IvanShift in #3475
  • Warn about rTorrent releases before 0.16.27 by @xirvik in #3481
  • Keep a non-ASCII move destination on PHP 7.4 by @xirvik in #3480
  • Add helpers for byte-preserving text display and shell quoting by @IvanShift in #3476
  • rtorrent: keep fast resume to the paths the daemon will load by @IvanShift in #3477
  • _task: refuse pid 1 when killing a task by @IvanShift in #3478
  • autotools: keep a skipped Move pointed at its data by @IvanShift in #3482
  • Tests: clean up rTorrent probe fixtures after setup failures by @IvanShift in #3463
  • ExternalURL: validate decoded special-scheme hosts by @IvanShift in #3464
  • Add display names for torrents from their own metadata by @IvanShift in #3483
  • Keep non-ASCII names on PHP 7.4 in three more basename() calls by @IvanShift in #3484
  • Keep datadir moves inside the top directory through links by @xirvik in #3488
  • Httprpc: validate list deltas before changing the cache by @IvanShift in #3466
  • webui: translate the first line of the Log tab by @Heliedan in #3468
  • addtorrent: don't randomize the info hash of a private torrent by @Heliedan in #3467
  • Keep plugin directories inside the top directory through links by @xirvik in #3489
  • Show legacy filename bytes in add torrent notifications by @IvanShift in #3485
  • Preserve filename bytes in filesystem shell fallbacks by @IvanShift in #3486
  • Bump version to 5.3.20 by @xirvik in #3490

Full Changelog: v5.3.19...v.5.20