diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2013-07-20 21:58:47 +0000 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2013-07-20 21:58:47 +0000 |
commit | 9570443f415004606325c2a0d1eb35db766b3290 (patch) | |
tree | 949949d46f6355b9af9ecabe06d35013e5313264 /kde-base | |
parent | Fix potential nullpointer issue (backport) (diff) | |
download | gentoo-2-9570443f415004606325c2a0d1eb35db766b3290.tar.gz gentoo-2-9570443f415004606325c2a0d1eb35db766b3290.tar.bz2 gentoo-2-9570443f415004606325c2a0d1eb35db766b3290.zip |
Fix potential nullpointer issue (backport)
(Portage version: 2.2.0_alpha188/cvs/Linux x86_64, signed Manifest commit with key EBE6A336BE19039C!)
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/kdm/ChangeLog | 9 | ||||
-rw-r--r-- | kde-base/kdm/files/kdm-4.10.4-crypt.patch | 48 | ||||
-rw-r--r-- | kde-base/kdm/kdm-4.10.4-r1.ebuild | 159 | ||||
-rw-r--r-- | kde-base/kdm/kdm-4.10.5-r1.ebuild | 159 |
4 files changed, 374 insertions, 1 deletions
diff --git a/kde-base/kdm/ChangeLog b/kde-base/kdm/ChangeLog index 3b92696e9d9e..55122243c957 100644 --- a/kde-base/kdm/ChangeLog +++ b/kde-base/kdm/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for kde-base/kdm # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/ChangeLog,v 1.351 2013/07/02 16:48:12 johu Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/ChangeLog,v 1.352 2013/07/20 21:58:46 dilfridge Exp $ + +*kdm-4.10.5-r1 (20 Jul 2013) +*kdm-4.10.4-r1 (20 Jul 2013) + + 20 Jul 2013; Andreas K. Huettel <dilfridge@gentoo.org> +kdm-4.10.4-r1.ebuild, + +files/kdm-4.10.4-crypt.patch, +kdm-4.10.5-r1.ebuild: + Fix potential nullpointer issue (backport) *kdm-4.10.5 (02 Jul 2013) diff --git a/kde-base/kdm/files/kdm-4.10.4-crypt.patch b/kde-base/kdm/files/kdm-4.10.4-crypt.patch new file mode 100644 index 000000000000..c64b6c09cb61 --- /dev/null +++ b/kde-base/kdm/files/kdm-4.10.4-crypt.patch @@ -0,0 +1,48 @@ +From 45b7f137fbc0b942fd2c9b4e8d8c1f0293e64ba7 Mon Sep 17 00:00:00 2001 +From: Michael Pyne <mpyne@kde.org> +Date: Sat, 29 Jun 2013 16:13:20 -0400 +Subject: [PATCH] kdm, kcheckpass: Check for NULL return from crypt(3) and + friends. + +Potential issue noted and fixed by Mancha <mancha1@hush.com>. + +Patch reviewed by myself and ossi. Backported to 4.10 by myself. + +REVIEW:111261 +FIXED-IN:4.10.5 +--- + kcheckpass/checkpass_etcpasswd.c | 3 ++- + kcheckpass/checkpass_osfc2passwd.c | 3 ++- + kcheckpass/checkpass_shadow.c | 2 +- + kdm/backend/client.c | 7 +++++-- + 4 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/kdm/backend/client.c b/kdm/backend/client.c +index bdff6da..26bb0b4 100644 +--- a/kdm/backend/client.c ++++ b/kdm/backend/client.c +@@ -540,6 +540,9 @@ verify(GConvFunc gconv, int rootok) + # if defined(HAVE_STRUCT_PASSWD_PW_EXPIRE) || defined(USESHADOW) + int tim, expir, warntime, quietlog; + # endif ++# if !defined(ultrix) && !defined(__ultrix__) && (defined(HAVE_PW_ENCRYPT) || defined(HAVE_CRYPT)) ++ char *crpt_passwd; ++# endif + #endif + + debug("verify ...\n"); +@@ -752,9 +755,9 @@ verify(GConvFunc gconv, int rootok) + # if defined(ultrix) || defined(__ultrix__) + if (authenticate_user(p, curpass, 0) < 0) + # elif defined(HAVE_PW_ENCRYPT) +- if (strcmp(pw_encrypt(curpass, p->pw_passwd), p->pw_passwd)) ++ if (!(crpt_passwd = pw_encrypt(curpass, p->pw_passwd)) || strcmp(crpt_passwd, p->pw_passwd)) + # elif defined(HAVE_CRYPT) +- if (strcmp(crypt(curpass, p->pw_passwd), p->pw_passwd)) ++ if (!(crpt_passwd = crypt(curpass, p->pw_passwd)) || strcmp(crpt_passwd, p->pw_passwd)) + # else + if (strcmp(curpass, p->pw_passwd)) + # endif +-- +1.8.3.2 + diff --git a/kde-base/kdm/kdm-4.10.4-r1.ebuild b/kde-base/kdm/kdm-4.10.4-r1.ebuild new file mode 100644 index 000000000000..b07527606e77 --- /dev/null +++ b/kde-base/kdm/kdm-4.10.4-r1.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/kdm-4.10.4-r1.ebuild,v 1.1 2013/07/20 21:58:47 dilfridge Exp $ + +EAPI=5 + +KDE_HANDBOOK="optional" +KMNAME="kde-workspace" +inherit systemd kde4-meta flag-o-matic user + +DESCRIPTION="KDE login manager, similar to xdm and gdm" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+consolekit debug kerberos pam" + +DEPEND=" + $(add_kdebase_dep libkworkspace) + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXtst + consolekit? ( + >=sys-apps/dbus-1.0.2 + sys-auth/consolekit + ) + kerberos? ( virtual/krb5 ) + pam? ( + $(add_kdebase_dep kcheckpass) + virtual/pam + ) +" +RDEPEND="${DEPEND} + $(add_kdebase_dep kdepasswd) + >=x11-apps/xinit-1.0.5-r2 + x11-apps/xmessage +" + +KMEXTRA=" + libs/kdm/ +" + +PATCHES=( + "${FILESDIR}/${PN}-4-gentoo-xinitrc.d.patch" + "${FILESDIR}/${PN}-4.10.4-crypt.patch" +) + +pkg_setup() { + kde4-meta_pkg_setup + + # Create kdm:kdm user + KDM_HOME=/var/lib/kdm + enewgroup kdm + enewuser kdm -1 -1 "${KDM_HOME}" kdm +} + +src_configure() { + mycmakeargs=( + $(cmake-utils_use kerberos KDE4_KRB5AUTH) + $(cmake-utils_use_with pam) + $(cmake-utils_use_with consolekit CkConnector) + ) + + kde4-meta_src_configure +} + +src_install() { + export GENKDMCONF_FLAGS="--no-old --no-backup" + + kde4-meta_src_install + + # an equivalent file is already installed by kde-base/startkde, bug 377151 + rm "${ED}/usr/share/apps/kdm/sessions/kde-plasma.desktop" || die + + # Customize the kdmrc configuration: + # - SessionDirs set to /usr/share/xsessions + # - increase server timeout to 30s + # - TerminateServer=true to workaround X server regen bug, bug 278473 + # - DataDir set to /var/lib/kdm + # - FaceDir set to /var/lib/kdm/faces + sed -e "s|^.*SessionsDirs=.*$|#&\nSessionsDirs=${EPREFIX}/usr/share/apps/kdm/sessions,${EPREFIX}/usr/share/xsessions|" \ + -e "/#ServerTimeout=/s/^.*$/ServerTimeout=30/" \ + -e "/#TerminateServer=/s/^.*$/TerminateServer=true/" \ + -e "s|^.*DataDir=.*$|#&\nDataDir=${EPREFIX}${KDM_HOME}|" \ + -e "s|^.*FaceDir=.*$|#&\nFaceDir=${EPREFIX}${KDM_HOME}/faces|" \ + -i "${ED}"/usr/share/config/kdm/kdmrc \ + || die "Failed to set ServerTimeout and SessionsDirs correctly in kdmrc." + + # Don't install empty dir + rmdir "${ED}"/usr/share/config/kdm/sessions + + # Set up permissions to kdm work directory + keepdir "${KDM_HOME}" + fowners root:kdm "${KDM_HOME}" + fperms 1770 "${KDM_HOME}" + + # install logrotate file + insinto /etc/logrotate.d + newins "${FILESDIR}"/kdm-logrotate kdm + + systemd_dounit "${FILESDIR}"/kdm.service +} + +pkg_postinst() { + kde4-meta_pkg_postinst + + local file src dest dir old_dirs=( + /var/lib/kdm-live + /var/lib/kdm-4.6 + /var/lib/kdm-4.5 + /var/lib/kdm-4.4 + /usr/share/apps/kdm + /usr/kde/4.4/share/apps/kdm + /usr/kde/4.3/share/apps/kdm + /usr/kde/4.2/share/apps/kdm + ) + + mkdir -p "${EROOT}${KDM_HOME}/faces" + # Set the default kdm face icon if it's not already set by the system admin + # because this is user-overrideable in that way, it's not in src_install + for file in faces/.default.face.icon:default1.png faces/root.face.icon:root1.png kdmsts: ; do + src=${file#*:} + dest=${file%:*} + if [[ ! -e ${EROOT}${KDM_HOME}/$dest ]]; then + for dir in "${old_dirs[@]}"; do + if [[ -e ${EROOT}${dir}/${dest} ]]; then + cp "${EROOT}${dir}/${dest}" "${EROOT}${KDM_HOME}/${dest}" + break 2 + fi + done + if [[ -n ${src} ]]; then + cp "${EROOT}/usr/share/apps/kdm/pics/users/${src}" \ + "${EROOT}${KDM_HOME}/${dest}" + fi + fi + done + for dir in "${old_dirs[@]}"; do + if [[ ${dir} != /usr/* && -d ${EROOT}${dir} ]]; then + echo + elog "The directory ${EROOT%/}${dir} still exists from an older installation of KDE." + elog "You may wish to copy relevant settings into ${EROOT%/}${KDM_HOME}." + echo + elog "After doing so, you may delete the directory." + echo + fi + done + + # Make sure permissions are correct -- old installations may have + # gotten this wrong + use prefix || chown root:kdm "${EROOT}${KDM_HOME}" + chmod 1770 "${EROOT}${KDM_HOME}" + + if use consolekit; then + echo + elog "You have compiled 'kdm' with consolekit support. If you want to use kdm," + elog "make sure consolekit daemon is running and started at login time" + elog + elog "rc-update add consolekit default && /etc/init.d/consolekit start" + echo + fi +} diff --git a/kde-base/kdm/kdm-4.10.5-r1.ebuild b/kde-base/kdm/kdm-4.10.5-r1.ebuild new file mode 100644 index 000000000000..112bc450995c --- /dev/null +++ b/kde-base/kdm/kdm-4.10.5-r1.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/kdm-4.10.5-r1.ebuild,v 1.1 2013/07/20 21:58:47 dilfridge Exp $ + +EAPI=5 + +KDE_HANDBOOK="optional" +KMNAME="kde-workspace" +inherit systemd kde4-meta flag-o-matic user + +DESCRIPTION="KDE login manager, similar to xdm and gdm" +KEYWORDS=" ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+consolekit debug kerberos pam" + +DEPEND=" + $(add_kdebase_dep libkworkspace) + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXtst + consolekit? ( + >=sys-apps/dbus-1.0.2 + sys-auth/consolekit + ) + kerberos? ( virtual/krb5 ) + pam? ( + $(add_kdebase_dep kcheckpass) + virtual/pam + ) +" +RDEPEND="${DEPEND} + $(add_kdebase_dep kdepasswd) + >=x11-apps/xinit-1.0.5-r2 + x11-apps/xmessage +" + +KMEXTRA=" + libs/kdm/ +" + +PATCHES=( + "${FILESDIR}/${PN}-4-gentoo-xinitrc.d.patch" + "${FILESDIR}/${PN}-4.10.4-crypt.patch" +) + +pkg_setup() { + kde4-meta_pkg_setup + + # Create kdm:kdm user + KDM_HOME=/var/lib/kdm + enewgroup kdm + enewuser kdm -1 -1 "${KDM_HOME}" kdm +} + +src_configure() { + mycmakeargs=( + $(cmake-utils_use kerberos KDE4_KRB5AUTH) + $(cmake-utils_use_with pam) + $(cmake-utils_use_with consolekit CkConnector) + ) + + kde4-meta_src_configure +} + +src_install() { + export GENKDMCONF_FLAGS="--no-old --no-backup" + + kde4-meta_src_install + + # an equivalent file is already installed by kde-base/startkde, bug 377151 + rm "${ED}/usr/share/apps/kdm/sessions/kde-plasma.desktop" || die + + # Customize the kdmrc configuration: + # - SessionDirs set to /usr/share/xsessions + # - increase server timeout to 30s + # - TerminateServer=true to workaround X server regen bug, bug 278473 + # - DataDir set to /var/lib/kdm + # - FaceDir set to /var/lib/kdm/faces + sed -e "s|^.*SessionsDirs=.*$|#&\nSessionsDirs=${EPREFIX}/usr/share/apps/kdm/sessions,${EPREFIX}/usr/share/xsessions|" \ + -e "/#ServerTimeout=/s/^.*$/ServerTimeout=30/" \ + -e "/#TerminateServer=/s/^.*$/TerminateServer=true/" \ + -e "s|^.*DataDir=.*$|#&\nDataDir=${EPREFIX}${KDM_HOME}|" \ + -e "s|^.*FaceDir=.*$|#&\nFaceDir=${EPREFIX}${KDM_HOME}/faces|" \ + -i "${ED}"/usr/share/config/kdm/kdmrc \ + || die "Failed to set ServerTimeout and SessionsDirs correctly in kdmrc." + + # Don't install empty dir + rmdir "${ED}"/usr/share/config/kdm/sessions + + # Set up permissions to kdm work directory + keepdir "${KDM_HOME}" + fowners root:kdm "${KDM_HOME}" + fperms 1770 "${KDM_HOME}" + + # install logrotate file + insinto /etc/logrotate.d + newins "${FILESDIR}"/kdm-logrotate kdm + + systemd_dounit "${FILESDIR}"/kdm.service +} + +pkg_postinst() { + kde4-meta_pkg_postinst + + local file src dest dir old_dirs=( + /var/lib/kdm-live + /var/lib/kdm-4.6 + /var/lib/kdm-4.5 + /var/lib/kdm-4.4 + /usr/share/apps/kdm + /usr/kde/4.4/share/apps/kdm + /usr/kde/4.3/share/apps/kdm + /usr/kde/4.2/share/apps/kdm + ) + + mkdir -p "${EROOT}${KDM_HOME}/faces" + # Set the default kdm face icon if it's not already set by the system admin + # because this is user-overrideable in that way, it's not in src_install + for file in faces/.default.face.icon:default1.png faces/root.face.icon:root1.png kdmsts: ; do + src=${file#*:} + dest=${file%:*} + if [[ ! -e ${EROOT}${KDM_HOME}/$dest ]]; then + for dir in "${old_dirs[@]}"; do + if [[ -e ${EROOT}${dir}/${dest} ]]; then + cp "${EROOT}${dir}/${dest}" "${EROOT}${KDM_HOME}/${dest}" + break 2 + fi + done + if [[ -n ${src} ]]; then + cp "${EROOT}/usr/share/apps/kdm/pics/users/${src}" \ + "${EROOT}${KDM_HOME}/${dest}" + fi + fi + done + for dir in "${old_dirs[@]}"; do + if [[ ${dir} != /usr/* && -d ${EROOT}${dir} ]]; then + echo + elog "The directory ${EROOT%/}${dir} still exists from an older installation of KDE." + elog "You may wish to copy relevant settings into ${EROOT%/}${KDM_HOME}." + echo + elog "After doing so, you may delete the directory." + echo + fi + done + + # Make sure permissions are correct -- old installations may have + # gotten this wrong + use prefix || chown root:kdm "${EROOT}${KDM_HOME}" + chmod 1770 "${EROOT}${KDM_HOME}" + + if use consolekit; then + echo + elog "You have compiled 'kdm' with consolekit support. If you want to use kdm," + elog "make sure consolekit daemon is running and started at login time" + elog + elog "rc-update add consolekit default && /etc/init.d/consolekit start" + echo + fi +} |