Commit Graph

8 Commits

Author SHA1 Message Date
Ludovic Courtès
1303a4a451 daemon: Fix possible use-after-free.
This is essentially a backport of
<f52b6c944e>
by Eelco Dolstra <eelco.dolstra@logicblox.com>.

The use-after-free bug would typically manifest when building with
GCC 5.1.
2015-05-11 23:01:20 +02:00
Ludovic Courtès
15ddeff532 Merge commit a1dd396cc02922372314c35c8035a38bfeea08df of branch 'nix'. 2015-01-04 23:27:34 +01:00
Ludovic Courtès
36457566f9 Merge branch 'nix' into 'master'. 2014-12-19 22:47:37 +01:00
Ludovic Courtès
0c5028faea daemon: Fix 'HashSink::currentHash()'.
Before that, calls to 'HashSink::currentHash()' would eventually lead to
a segfault because the underlying gcrypt handle has been closed.  (Note
that this method is only used via 'importPaths' and 'exportPath', though.)

* nix/libutil/gcrypt-hash.hh (struct guix_hash_context): Add a
  constructor and a copy constructor; move out of 'extern "C"'.
* nix/libutil/gcrypt-hash.cc (guix_hash_final): Clear 'md_handle' upon
  exit.
* nix/sync-with-upstream (top_srcdir): Change hash.{cc,hh} to read
  'struct Ctx' instead of 'union Ctx'.
2013-12-19 00:02:49 +01:00
Ludovic Courtès
ea16738085 daemon: Use 'int' instead of the internal 'gcry_md_algo_t' type.
Fixes compilation with the forthcoming libgcrypt 1.6.x.
Reported by Matthias Wachs <wachs@net.in.tum.de>
and NIIBE Yutaka <gniibe@fsij.org>.

* nix/libutil/gcrypt-hash.cc (guix_hash_init, guix_hash_final): Use
  'int' as the type of the 'algo' parameter.
* nix/libutil/gcrypt-hash.hh: Update declarations accordingly.
2013-09-12 14:09:29 +02:00
Ludovic Courtès
233e76769a Update license headers.
Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:

  (use-modules (guix build utils)
	       (srfi srfi-1))

  (fluid-set! %default-port-encoding "UTF-8")

  (substitute* (remove (lambda (f)
			 (or (string-contains f ".tar.")
			     (string-contains f ".git/")
			     (string-contains f ".so")
			     (string-suffix? ".o" f)
			     (string-suffix? ".a" f)
			     (string-suffix? ".go" f)
			     (string-suffix? ".pdf" f)
			     (string-suffix? ".png" f)
			     (string-suffix? ".info" f)
			     (equal? (basename f) "guix-daemon")
			     (equal? (basename f) "nix-setuid-helper")
			     (string-contains f "nix-upstream/")
			     (string-contains f "distro/packages/bootstrap/")))
		       (find-files "." "\\.[a-z]+$"))
    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
     (string-append comment-start " This file is part of GNU Guix."))
    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
     (string-append comment-start
		    " GNU Guix --- Functional package management for GNU\n"))
    (("^([[:graph:]]+) Guix is " _ comment-start)
     (string-append comment-start " GNU Guix is "))
    (("^([[:graph:]]+) along with Guix." _ comment-start)
     (string-append comment-start " along with GNU Guix."))
    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
     (string-append comment-start " Copyright ©")))

Change headers using C-style comments manually.
2013-01-06 00:47:50 +01:00
Ludovic Courtès
0adb527600 daemon: Fix typo in libgcrypt bindings.
* nix/libutil/md5.h (MD5_Final): Pass RESBUF as the first argument to
  `guix_hash_final'.
* nix/libutil/sha1.h (SHA1_Final): Likewise.
* nix/libutil/sha256.h (SHA256_Final): Likewise.
2012-12-04 23:51:48 +01:00
Ludovic Courtès
c2033df432 build: Include a copy of Nix's libstore and daemon; build it.
* configure.ac: Call `AC_USE_SYSTEM_EXTENSIONS', and
  `GUIX_SYSTEM_TYPE'.  Add `--with-store-dir' option, and substitute
  `storedir'.  Include `config-daemon.ac'.
* config-daemon.ac: New file.
* Makefile.am [BUILD_DAEMON]: Include `daemon.am'.
* daemon.am: New file.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): New macro.

* nix/libutil/gcrypt-hash.cc, nix/libutil/gcrypt-hash.hh,
  nix/libutil/md5.h, nix/libutil/sha1.h, nix/libutil/sha256.h,
  nix/nix-daemon/guix-daemon.cc, nix/nix-daemon/shared.hh: New files.
2012-12-03 23:05:08 +01:00