From 351e1c44668c269c9da77c73ceeab9a10cbbfad4 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sat, 1 Feb 2014 10:20:13 -0600 Subject: system/gdm: Remove the (unneeded|faulty) crypt patch This was originally added while the 14.0 tree was maintained, and the intent was to allow users on -current (to be 14.1) to use gdm without being a security risk. As it turned out, the patch was a bit faulty, and while it helped one issue, it caused another, so we'll just remove it now. If you're running 14.1 at this point, you should use the 14.1 repo, which has a fixed patch in the gdm build. Thanks again to mancha for all of his help with this. Signed-off-by: Robby Workman --- system/gdm/gdm.SlackBuild | 5 +- system/gdm/patches/gdm-2.20.11-crypt.diff | 134 ------------------------------ 2 files changed, 1 insertion(+), 138 deletions(-) delete mode 100644 system/gdm/patches/gdm-2.20.11-crypt.diff diff --git a/system/gdm/gdm.SlackBuild b/system/gdm/gdm.SlackBuild index 7699068bd7..050ccdbd12 100644 --- a/system/gdm/gdm.SlackBuild +++ b/system/gdm/gdm.SlackBuild @@ -11,7 +11,7 @@ PRGNAM=gdm VERSION=${VERSION:-2.20.11} -BUILD=${BUILD:-5} +BUILD=${BUILD:-6} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -60,9 +60,6 @@ find . \ # Don't automatically start ssh-agent -- this is the user's job patch -p1 < $CWD/patches/do_not_start_ssh-agent.diff -# Fix crypt() usage with glibc-2.17 and later -patch -p1 < $CWD/patches/gdm-2.20.11-crypt.diff - CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/system/gdm/patches/gdm-2.20.11-crypt.diff b/system/gdm/patches/gdm-2.20.11-crypt.diff deleted file mode 100644 index d72bd80c46..0000000000 --- a/system/gdm/patches/gdm-2.20.11-crypt.diff +++ /dev/null @@ -1,134 +0,0 @@ -Correctly handle crypt() NULL returns when built against glibc 2.17+ - -Author: mancha - -======= - ---- gdm-2.20.11/daemon/verify-crypt.c.orig 2013-06-23 -+++ gdm-2.20.11/daemon/verify-crypt.c 2013-06-23 -@@ -104,7 +104,7 @@ gdm_verify_user (GdmDisplay *d, - const char *username, - gboolean allow_retry) - { -- gchar *login, *passwd, *ppasswd; -+ gchar *login, *passwd, *ppasswd, *cpasswd; - struct passwd *pwent; - #if defined (HAVE_PASSWDEXPIRED) && defined (HAVE_CHPASS) \ - || defined (HAVE_LOGINRESTRICTIONS) -@@ -190,8 +190,10 @@ gdm_verify_user (GdmDisplay *d, - } - - /* Check whether password is valid */ -- if (ppasswd == NULL || (ppasswd[0] != '\0' && -- strcmp (crypt (passwd, ppasswd), ppasswd) != 0)) { -+ cpasswd = ppasswd ? crypt (passwd, ppasswd) : NULL; -+ if (ppasswd == NULL || cpasswd == NULL || -+ (ppasswd[0] != '\0' && -+ strcmp (cpasswd, ppasswd) != 0)) { - gdm_sleep_no_signal (gdm_daemon_config_get_value_int (GDM_KEY_RETRY_DELAY)); - gdm_debug ("Couldn't authenticate user"); - -@@ -200,6 +202,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -217,6 +220,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -233,6 +237,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - if (message != NULL) - free (message); - return NULL; -@@ -259,6 +264,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -266,6 +272,7 @@ gdm_verify_user (GdmDisplay *d, - - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - - if ( ! gdm_slave_check_user_wants_to_log_in (login)) { - g_free (login); ---- gdm-2.20.11/daemon/verify-shadow.c.orig 2013-06-23 -+++ gdm-2.20.11/daemon/verify-shadow.c 2013-06-23 -@@ -105,7 +105,7 @@ gdm_verify_user (GdmDisplay *d, - const char *username, - gboolean allow_retry) - { -- gchar *login, *passwd, *ppasswd; -+ gchar *login, *passwd, *ppasswd, *cpasswd; - struct passwd *pwent; - struct spwd *sp; - #if defined (HAVE_PASSWDEXPIRED) && defined (HAVE_CHPASS) \ -@@ -211,8 +211,10 @@ gdm_verify_user (GdmDisplay *d, - } - - /* Check whether password is valid */ -- if (ppasswd == NULL || (ppasswd[0] != '\0' && -- strcmp (crypt (passwd, ppasswd), ppasswd) != 0)) { -+ cpasswd = ppasswd ? crypt (passwd, ppasswd) : NULL; -+ if (ppasswd == NULL || cpasswd == NULL || -+ (ppasswd[0] != '\0' && -+ strcmp (cpasswd, ppasswd) != 0)) { - gdm_sleep_no_signal (gdm_daemon_config_get_value_int (GDM_KEY_RETRY_DELAY)); - gdm_debug ("Couldn't authenticate user"); - -@@ -221,6 +223,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -238,6 +241,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -254,6 +258,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - if (message != NULL) - free (message); - return NULL; -@@ -280,6 +285,7 @@ gdm_verify_user (GdmDisplay *d, - g_free (login); - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - return NULL; - } - -@@ -287,6 +293,7 @@ gdm_verify_user (GdmDisplay *d, - - g_free (passwd); - g_free (ppasswd); -+ g_free (cpasswd); - - if ( ! gdm_slave_check_user_wants_to_log_in (login)) { - g_free (login); -- cgit v1.2.3