Skip to content

Commit

Permalink
jesec-rtorrent: Add patch to prevent segfault
Browse files Browse the repository at this point in the history
  • Loading branch information
Varun Madiath authored and AndersonTorres committed Jul 20, 2023
1 parent 1a335c2 commit 4b7ad2c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
From dd4a96073d4a60ca8fff55be6ea6b17018de96a8 Mon Sep 17 00:00:00 2001
From: Varun Madiath <git@madiathv.com>
Date: Wed, 19 Jul 2023 15:30:57 -0400
Subject: [PATCH] utils: lockfile: avoid stack overflow for lockfile buffer

Original patch by @cyphar was submitted to rakshasa/rtorrent at
https://github.com/rakshasa/rtorrent/pull/1169.

Observed the segfault on nixos-unstable.
---
src/utils/lockfile.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/utils/lockfile.cc b/src/utils/lockfile.cc
index 76e4b8f..441f5c8 100644
--- a/src/utils/lockfile.cc
+++ b/src/utils/lockfile.cc
@@ -75,7 +75,8 @@ Lockfile::try_lock() {
int pos = ::gethostname(buf, 255);

if (pos == 0) {
- ::snprintf(buf + std::strlen(buf), 255, ":+%i\n", ::getpid());
+ ssize_t len = std::strlen(buf);
+ ::snprintf(buf + len, 255 - len, ":+%i\n", ::getpid());
ssize_t __attribute__((unused)) result = ::write(fd, buf, std::strlen(buf));
}

--
2.41.0

4 changes: 4 additions & 0 deletions pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ stdenv.mkDerivation rec {
hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
};

patches = [
./avoid-stack-overflow-for-lockfile-buf.patch
];

passthru = {
inherit libtorrent;
};
Expand Down

0 comments on commit 4b7ad2c

Please sign in to comment.