about summary refs log tree commit diff
path: root/pkgs/applications/audio/mikmod
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2024-01-13 22:51:53 +0000
committerSergei Trofimovich <slyich@gmail.com>2024-01-13 22:51:53 +0000
commitd6d5c923f641510da94be1a09507a356be1bcc25 (patch)
tree6d9a3b7c8abe3afdb4e7f92f7862427e3c03e1e3 /pkgs/applications/audio/mikmod
parent221ad6d7ff2ee75bd062b8425c3c42e8353e4712 (diff)
mikmod: fix startup crash on `_FORTIFY_SOURCE=3`
Without the change `mikmod` crashes at startup as:

    $ nix run nixpkgs#mikmod
    *** buffer overflow detected ***: terminated
    Aborted (core dumped)

The change fixes `snprintf()` buffer size accounting by picking patch
proposed for upstream inclusion:

    https://sourceforge.net/p/mikmod/patches/17/
Diffstat (limited to 'pkgs/applications/audio/mikmod')
-rw-r--r--pkgs/applications/audio/mikmod/default.nix13
1 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/applications/audio/mikmod/default.nix b/pkgs/applications/audio/mikmod/default.nix
index 4cc0fec2e2f69..bb604d6bade2f 100644
--- a/pkgs/applications/audio/mikmod/default.nix
+++ b/pkgs/applications/audio/mikmod/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libmikmod, ncurses }:
+{ lib, stdenv, fetchurl, fetchpatch, libmikmod, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "mikmod";
@@ -9,6 +9,17 @@ stdenv.mkDerivation rec {
     sha256 = "1k54p8pn3jinha0f2i23ad15pf1pamibzcxjrbzjbklpcz1ipc6v";
   };
 
+  patches = [
+    # Fix player startup crash due to stack overflow check:
+    #   https://sourceforge.net/p/mikmod/patches/17/
+    (fetchpatch {
+      name = "fortify-source-3.patch";
+      url = "https://sourceforge.net/p/mikmod/patches/17/attachment/0001-mikmod-fix-startup-crash-on-_FROTIFY_SOURCE-3-system.patch";
+      stripLen = 1;
+      hash = "sha256-YtbnLTsW3oYPo4r3fh3DUd3DD5ogWrCNlrDcneY03U0=";
+    })
+  ];
+
   buildInputs = [ libmikmod ncurses ];
 
   meta = {