Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[xsrc/xorg]: xsrc/external/mit/libSM/dist initial import of libSM-1.2.3



details:   https://anonhg.NetBSD.org/xsrc/rev/0c92394a42fc
branches:  xorg
changeset: 10000:0c92394a42fc
user:      mrg <mrg%NetBSD.org@localhost>
date:      Fri Dec 28 08:56:25 2018 +0000

description:
initial import of libSM-1.2.3

diffstat:

 external/mit/libSM/dist/ChangeLog        |   136 +
 external/mit/libSM/dist/INSTALL          |   119 +-
 external/mit/libSM/dist/Makefile.in      |    56 +-
 external/mit/libSM/dist/aclocal.m4       |  5426 +++++++++++++++------------
 external/mit/libSM/dist/compile          |     2 +-
 external/mit/libSM/dist/config.guess     |   858 ++--
 external/mit/libSM/dist/config.h.in      |     9 +-
 external/mit/libSM/dist/config.sub       |   343 +-
 external/mit/libSM/dist/configure        |  3020 +++++++++------
 external/mit/libSM/dist/configure.ac     |     2 +-
 external/mit/libSM/dist/depcomp          |     6 +-
 external/mit/libSM/dist/doc/Makefile.in  |    30 +-
 external/mit/libSM/dist/doc/SMlib.xml    |     4 +-
 external/mit/libSM/dist/install-sh       |   361 +-
 external/mit/libSM/dist/ltmain.sh        |  5841 ++++++++++++++++++-----------
 external/mit/libSM/dist/missing          |     6 +-
 external/mit/libSM/dist/src/Makefile.am  |     3 +-
 external/mit/libSM/dist/src/Makefile.in  |    33 +-
 external/mit/libSM/dist/src/SMlibint.h   |    74 -
 external/mit/libSM/dist/src/sm_genid.c   |    12 +-
 external/mit/libSM/dist/src/sm_process.c |   318 +-
 21 files changed, 9810 insertions(+), 6849 deletions(-)

diffs (truncated from 29391 to 300 lines):

diff -r fdd92d86676e -r 0c92394a42fc external/mit/libSM/dist/ChangeLog
--- a/external/mit/libSM/dist/ChangeLog Tue Aug 28 05:50:41 2018 +0000
+++ b/external/mit/libSM/dist/ChangeLog Fri Dec 28 08:56:25 2018 +0000
@@ -1,3 +1,139 @@
+commit a52c79544fcd6b5e2242b9122dfaa34be07aebb2
+Author: Matthieu Herrb <matthieu%herrb.eu@localhost>
+Date:   Sun Sep 30 11:03:41 2018 +0200
+
+    libSM 1.2.3
+    
+    Signed-off-by: Matthieu Herrb <matthieu%herrb.eu@localhost>
+
+commit d86106f2369ecf81155decaa360f9162c0c3cd53
+Author: Tobias Stoeckmann <tobias%stoeckmann.org@localhost>
+Date:   Wed Aug 15 21:21:09 2018 +0200
+
+    Fixed out ouf boundary accesses.
+    
+    Out of boundary accesses can occur while processing messages. This
+    affects clients and the session server.
+    
+    Generally, the code tries to prevent out of boundary accesses. It
+    initially "skips" over the memory areas by parsing supplied lengths.
+    Then, it checks if it skipped over the memory boundary. If not, then
+    data is actually read and memory allocated, etc.
+    
+    The problem is that while initially skipping over the memory,
+    subsequent lengths are already parsed, i.e. accessed. This results in
+    out of boundary reads on hostile messages.
+    
+    Lengths could also overflow on 32 bit systems, leading to out of
+    boundary writes if not enough bytes have been allocated.
+    
+    Authentication is handled by libICE, which is not affected, because the
+    macros for skipping already take care about memory boundaries.
+    
+    Therefore, this flaw can only be used by authenticated clients or by
+    hostile servers (which could simply accept every MIT cookie). Most
+    session managers only use Unix sockets, so in many cases it takes a
+    local authenticated user.
+    
+    In order to fix this, I decided to move the macros from SMlibint.h to
+    its only callers in sm_process.c, turning them into functions for much
+    easier error handling and readability.
+    
+    Instead of skipping over the memory, validation happens during actual
+    read and memory allocation operations, as it's rather unlikely to
+    encounter hostile code anyway, i.e. my code has more error cleanup
+    handling in it.
+    
+    Signed-off-by: Tobias Stoeckmann <tobias%stoeckmann.org@localhost>
+    Reviewed-by: Matthieu Herrb <matthieu%herrb.eu@localhost>
+
+commit 75ffafb4e04661fb890a9e8088b743cb077050a6
+Author: Fab <netbox253%free.fr@localhost>
+Date:   Sat Oct 7 14:23:52 2017 +0000
+
+    Fix callbacks signatures in libSM documentation
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=103135
+    
+    Reviewed-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+    Signed-off-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+
+commit b347e9f8ef3ae027c049741ab5c0c8dac45c9eb2
+Author: Mihail Konev <k.mvc%ya.ru@localhost>
+Date:   Thu Jan 26 13:52:49 2017 +1000
+
+    autogen: add default patch prefix
+    
+    Signed-off-by: Mihail Konev <k.mvc%ya.ru@localhost>
+
+commit d34f694e810d11f95cd61e4209cd6e38f70bce58
+Author: Emil Velikov <emil.l.velikov%gmail.com@localhost>
+Date:   Mon Mar 9 12:00:52 2015 +0000
+
+    autogen.sh: use quoted string variables
+    
+    Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
+    fall-outs, when they contain space.
+    
+    Signed-off-by: Emil Velikov <emil.l.velikov%gmail.com@localhost>
+    Reviewed-by: Peter Hutterer <peter.hutterer%who-t.net@localhost>
+    Signed-off-by: Peter Hutterer <peter.hutterer%who-t.net@localhost>
+
+commit e27964e499f31f48782a6db7421660a230471b2c
+Author: Peter Hutterer <peter.hutterer%who-t.net@localhost>
+Date:   Tue Jan 24 10:32:07 2017 +1000
+
+    autogen.sh: use exec instead of waiting for configure to finish
+    
+    Syncs the invocation of configure with the one from the server.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer%who-t.net@localhost>
+    Reviewed-by: Emil Velikov <emil.velikov%collabora.com@localhost>
+
+commit b64aa0ef375f2df3ce166733fe92429ba43b6145
+Author: Matthieu Herrb <matthieu%herrb.eu@localhost>
+Date:   Tue Oct 20 14:48:52 2015 -0400
+
+    Get rid of strcpy() in the HAVE_UUID_CREATE case
+    
+    Even though this use was safe, some linkers produce a warning
+    when strcpy() is used, and this is the only use in libSM.
+    
+    Reviewed-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+
+commit 0bf5d26d1d55029846514758f2ffd80e816bd9fb
+Author: Matthieu Herrb <matthieu%herrb.eu@localhost>
+Date:   Tue Oct 20 14:47:50 2015 -0400
+
+    Fix uuid_to_string(3) type
+    
+    It should be char *.
+    
+    Reviewed-by: Adam Jackson <ajax%redhat.com@localhost>
+
+commit 29ea6247434a85934986e7d4fc60862231c5d77d
+Author: Jon TURNEY <jon.turney%dronecode.org.uk@localhost>
+Date:   Sat Sep 13 19:38:12 2014 +0100
+
+    Include unistd.h for getpid()
+    
+    Signed-off-by: Jon TURNEY <jon.turney%dronecode.org.uk@localhost>
+    Reviewed-by: David Macek <david.macek.0%gmail.com@localhost>
+
+commit f2dd6934c38414bc448ee49b47604f135f5487ea
+Author: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+Date:   Sat Nov 16 19:35:15 2013 -0800
+
+    Stop compiling empty sm_auth.c stub
+    
+    File exists as a placeholder in case someone someday decides to add
+    additional auth methods on top of what libICE provides, but it's been
+    two decades and no one has, so stop spending time compiling & linking
+    for now.
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+    Reviewed-by: Adam Jackson <ajax%redhat.com@localhost>
+
 commit 0fd7aa17da41779129a3acfdad28e07c0072a160
 Author: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
 Date:   Sat Sep 7 23:05:16 2013 -0700
diff -r fdd92d86676e -r 0c92394a42fc external/mit/libSM/dist/INSTALL
--- a/external/mit/libSM/dist/INSTALL   Tue Aug 28 05:50:41 2018 +0000
+++ b/external/mit/libSM/dist/INSTALL   Fri Dec 28 08:56:25 2018 +0000
@@ -1,11 +1,13 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Inc.
 
-   This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
 
 Basic Installation
 ==================
@@ -13,7 +15,11 @@
    Briefly, the shell commands `./configure; make; make install' should
 configure, build, and install this package.  The following
 more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -42,7 +48,7 @@
 you want to change it or regenerate `configure' using a newer version
 of `autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
      `./configure' to configure the package for your system.
@@ -53,12 +59,22 @@
   2. Type `make' to compile the package.
 
   3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+     the package, generally using the just-built uninstalled binaries.
 
   4. Type `make install' to install the programs and any data files and
-     documentation.
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
 
-  5. You can remove the program binaries and object files from the
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
      files that `configure' created (so you can compile the package for
      a different kind of computer), type `make distclean'.  There is
@@ -67,8 +83,15 @@
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
-  6. Often, you can also type `make uninstall' to remove the installed
-     files again.
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
 
 Compilers and Options
 =====================
@@ -93,7 +116,8 @@
 own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
 
    With a non-GNU `make', it is safer to compile the package for one
 architecture at a time in the source code directory.  After you have
@@ -120,7 +144,8 @@
    By default, `make install' installs the package's commands under
 `/usr/local/bin', include files under `/usr/local/include', etc.  You
 can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
@@ -131,15 +156,46 @@
    In addition, if you use an unusual directory layout you can give
 options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
 
    If the package supports it, you can cause programs to be installed
 with an extra prefix or suffix on their names by giving `configure' the
 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 
-Optional Features
-=================
-
    Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.



Home | Main Index | Thread Index | Old Index