~ruther/guix-local

38190ea5efa33ff91f6764149591b8939be0b932 — Marius Bakke 9 years ago f69e203
gnu: vim: Update to 8.0.0494.

* gnu/packages/patches/vim-CVE-2017-5953.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/vim.scm (vim, vim-full): Update to 8.0.0494.
[source]: Remove patch.
(vim-full)[arguments]: Add two phases to drop tests and start xorg.
[native-inputs]: Add XORG-SERVER.
3 files changed, 24 insertions(+), 38 deletions(-)

M gnu/local.mk
D gnu/packages/patches/vim-CVE-2017-5953.patch
M gnu/packages/vim.scm
M gnu/local.mk => gnu/local.mk +0 -1
@@ 964,7 964,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/util-linux-CVE-2017-2616.patch		\
  %D%/packages/patches/upower-builddir.patch			\
  %D%/packages/patches/valgrind-enable-arm.patch		\
  %D%/packages/patches/vim-CVE-2017-5953.patch			\
  %D%/packages/patches/virglrenderer-CVE-2017-6386.patch 	\
  %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch		\
  %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch		\

D gnu/packages/patches/vim-CVE-2017-5953.patch => gnu/packages/patches/vim-CVE-2017-5953.patch +0 -32
@@ 1,32 0,0 @@
Fix CVE-2017-5953:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5953
https://groups.google.com/forum/#!topic/vim_dev/t-3RSdEnrHY

This change is adapted from the upstream source repository:

https://github.com/vim/vim/commit/6d3c8586fc81b022e9f06c611b9926108fb878c7

diff --git a/src/spellfile.c b/src/spellfile.c
index c7d87c6..00ef019 100644
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -1585,7 +1585,7 @@ spell_read_tree(
     int		prefixtree,	/* TRUE for the prefix tree */
     int		prefixcnt)	/* when "prefixtree" is TRUE: prefix count */
 {
-    int		len;
+    long	len;
     int		idx;
     char_u	*bp;
     idx_T	*ip;
@@ -1595,6 +1595,9 @@ spell_read_tree(
     len = get4c(fd);
     if (len < 0)
 	return SP_TRUNCERROR;
+    if (len >= LONG_MAX / (long)sizeof(int))
+	/* Invalid length, multiply with sizeof(int) would overflow. */
+	return SP_FORMERROR;
     if (len > 0)
     {
 	/* Allocate the byte array. */

M gnu/packages/vim.scm => gnu/packages/vim.scm +24 -5
@@ 3,6 3,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,6 23,7 @@
(define-module (gnu packages vim)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix build-system cmake)


@@ 58,16 60,15 @@
(define-public vim
  (package
    (name "vim")
    (version "8.0.0300")
    (version "8.0.0494")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://github.com/vim/vim/archive/v"
                                 version ".tar.gz"))
             (file-name (string-append name "-" version ".tar.gz"))
             (patches (search-patches "vim-CVE-2017-5953.patch"))
             (sha256
              (base32
               "04samk2bakyixbxyc3p0g6ypls45105sikibg0wc6lmak9bqjs85"))))
               "08kzimdyla35ndrbn68jf8pmzm7nd2qrydnvk57j089m6ajic62r"))))
    (build-system gnu-build-system)
    (arguments
     `(#:test-target "test"


@@ 128,9 129,27 @@ configuration files.")
             "--enable-xim"
             "--disable-selinux"
             "--enable-gui")
       ,@(package-arguments vim)))
       ,@(substitute-keyword-arguments (package-arguments vim)
           ((#:phases phases)
            `(modify-phases ,phases
               (add-after 'build 'drop-failing-tests
                 (lambda _
                   ;; These tests fail mysteriously with GUI enabled.
                   ;; https://github.com/vim/vim/issues/1460
                   (substitute* "src/testdir/test_cmdline.vim"
                     (("call assert_equal\\(.+getcmd.+\\(\\)\\)") ""))
                   #t))
               (add-before 'check 'start-xserver
                 (lambda* (#:key inputs #:allow-other-keys)
                   ;; Some tests require an X server, but does not start one.
                   (let ((xorg-server (assoc-ref inputs "xorg-server"))
                         (display ":1"))
                     (setenv "DISPLAY" display)
                     (zero? (system (string-append xorg-server "/bin/Xvfb "
                                                    display " &")))))))))))
    (native-inputs
     `(("pkg-config" ,pkg-config)))
     `(("pkg-config" ,pkg-config)
       ("xorg-server" ,xorg-server)))
    (inputs
     `(("acl" ,acl)
       ("atk" ,atk)