diff options
Diffstat (limited to 'source/d/cvs')
-rwxr-xr-x | source/d/cvs/cvs.SlackBuild | 10 | ||||
-rw-r--r-- | source/d/cvs/cvs.crypt-2.diff | 53 | ||||
-rw-r--r-- | source/d/cvs/cvs.getline64.diff | 34 |
3 files changed, 95 insertions, 2 deletions
diff --git a/source/d/cvs/cvs.SlackBuild b/source/d/cvs/cvs.SlackBuild index 4c3528cb..81250f4a 100755 --- a/source/d/cvs/cvs.SlackBuild +++ b/source/d/cvs/cvs.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,7 +22,7 @@ VERSION=1.11.23 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -56,6 +56,12 @@ cd $TMP rm -rf cvs-$VERSION tar xvf $CWD/cvs-$VERSION.tar.bz2 || exit 1 cd cvs-$VERSION + +# Patch to handle recent glib crypt(): +zcat $CWD/cvs.crypt-2.diff.gz | patch -p1 --verbose || exit 1 +# Fix getline compile error: +zcat $CWD/cvs.getline64.diff.gz | patch -p1 --verbose || exit 1 + chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ diff --git a/source/d/cvs/cvs.crypt-2.diff b/source/d/cvs/cvs.crypt-2.diff new file mode 100644 index 00000000..140d0b95 --- /dev/null +++ b/source/d/cvs/cvs.crypt-2.diff @@ -0,0 +1,53 @@ +--- cvs-1.11.23/src/server.c.orig 2013-05-17 ++++ cvs-1.11.23/src/server.c 2013-05-22 +@@ -5632,9 +5632,11 @@ check_repository_password (username, pas + host_user_tmp = username; + + /* Verify blank passwords directly, otherwise use crypt(). */ ++ char *crypt_passwd = found_password ? crypt (password, found_password): NULL; + if ((found_password == NULL) +- || ((strcmp (found_password, crypt (password, found_password)) +- == 0))) ++ || (crypt_passwd != NULL ++ && (strcmp (found_password, crypt_passwd) ++ == 0))) + { + /* Give host_user_ptr permanent storage. */ + *host_user_ptr = xstrdup (host_user_tmp); +@@ -5645,7 +5647,7 @@ check_repository_password (username, pas + #ifdef LOG_AUTHPRIV + syslog (LOG_AUTHPRIV | LOG_NOTICE, + "password mismatch for %s in %s: %s vs. %s", username, +- repository, crypt(password, found_password), found_password); ++ repository, crypt_passwd, found_password); + #endif + *host_user_ptr = NULL; + retval = 2; +@@ -5675,6 +5677,7 @@ check_password (username, password, repo + char *host_user = NULL; + char *found_passwd = NULL; + struct passwd *pw; ++ char *crypt_passwd = NULL; + + /* First we see if this user has a password in the CVS-specific + password file. If so, that's enough to authenticate with. If +@@ -5752,7 +5755,9 @@ error 0 %s: no such user\n", username); + if (*found_passwd) + { + /* user exists and has a password */ +- if (strcmp (found_passwd, crypt (password, found_passwd)) == 0) ++ crypt_passwd = crypt (password, found_passwd); ++ if ((crypt_passwd != NULL) && ++ (strcmp (found_passwd, crypt_passwd) == 0)) + { + host_user = xstrdup (username); + } +@@ -5762,7 +5767,7 @@ error 0 %s: no such user\n", username); + #ifdef LOG_AUTHPRIV + syslog (LOG_AUTHPRIV | LOG_NOTICE, + "password mismatch for %s: %s vs. %s", username, +- crypt(password, found_passwd), found_passwd); ++ crypt_passwd, found_passwd); + #endif + } + goto handle_return; diff --git a/source/d/cvs/cvs.getline64.diff b/source/d/cvs/cvs.getline64.diff new file mode 100644 index 00000000..99942e05 --- /dev/null +++ b/source/d/cvs/cvs.getline64.diff @@ -0,0 +1,34 @@ +--- cvs-1.11.23/lib/getline.c 2005-04-04 22:46:05.000000000 +0200 ++++ cvs-1.11.23/lib/getline.c.old 2008-06-03 19:06:25.000000000 +0200 +@@ -154,7 +154,7 @@ + return ret; + } + +-int ++ssize_t + getline (lineptr, n, stream) + char **lineptr; + size_t *n; +@@ -163,7 +163,7 @@ + return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT); + } + +-int ++ssize_t + getline_safe (lineptr, n, stream, limit) + char **lineptr; + size_t *n; +--- cvs-1.11.23/lib/getline.h 2005-04-04 22:46:05.000000000 +0200 ++++ cvs-1.11.23/lib/getline.h.old 2008-06-03 19:06:27.000000000 +0200 +@@ -11,9 +11,9 @@ + + #define GETLINE_NO_LIMIT -1 + +-int ++ssize_t + getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream)); +-int ++ssize_t + getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream, + int limit)); + int |