summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2010-06-19 17:43:51 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2010-06-19 17:43:51 +0000
commit227a26eb5ea142ce6ad8bee9ec79e42bf1a11faa (patch)
tree30f16377b32913e4cb9eb4623d9129b48536acb2
parentVersion bump, remove patch. (diff)
downloadgentoo-2-227a26eb5ea142ce6ad8bee9ec79e42bf1a11faa.tar.gz
gentoo-2-227a26eb5ea142ce6ad8bee9ec79e42bf1a11faa.tar.bz2
gentoo-2-227a26eb5ea142ce6ad8bee9ec79e42bf1a11faa.zip
Fixed security issue.
(Portage version: 2.1.8.3/cvs/Linux x86_64)
-rw-r--r--www-client/w3m/ChangeLog8
-rw-r--r--www-client/w3m/files/w3m-CVE-2010-2074.patch55
-rw-r--r--www-client/w3m/w3m-0.5.2-r4.ebuild123
3 files changed, 185 insertions, 1 deletions
diff --git a/www-client/w3m/ChangeLog b/www-client/w3m/ChangeLog
index 33cdddbb397a..af0517cc7729 100644
--- a/www-client/w3m/ChangeLog
+++ b/www-client/w3m/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for www-client/w3m
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-client/w3m/ChangeLog,v 1.53 2010/01/16 20:38:19 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/w3m/ChangeLog,v 1.54 2010/06/19 17:43:51 matsuu Exp $
+
+*w3m-0.5.2-r4 (19 Jun 2010)
+
+ 19 Jun 2010; MATSUU Takuto <matsuu@gentoo.org> +w3m-0.5.2-r4.ebuild,
+ +files/w3m-CVE-2010-2074.patch:
+ Fixed security issue.
16 Jan 2010; Raúl Porcel <armin76@gentoo.org> w3m-0.5.2-r2.ebuild:
ia64 stable wrt #296051
diff --git a/www-client/w3m/files/w3m-CVE-2010-2074.patch b/www-client/w3m/files/w3m-CVE-2010-2074.patch
new file mode 100644
index 000000000000..2863932824c4
--- /dev/null
+++ b/www-client/w3m/files/w3m-CVE-2010-2074.patch
@@ -0,0 +1,55 @@
+Index: istream.c
+===================================================================
+--- istream.c
++++ istream.c
+@@ -447,8 +447,17 @@ ssl_check_cert_ident(X509 * x, char *hos
+
+ if (!seen_dnsname)
+ seen_dnsname = Strnew();
++ /* replace \0 to make full string visible to user */
++ if (sl != strlen(sn)) {
++ int i;
++ for (i = 0; i < sl; ++i) {
++ if (!sn[i])
++ sn[i] = '!';
++ }
++ }
+ Strcat_m_charp(seen_dnsname, sn, " ", NULL);
+- if (ssl_match_cert_ident(sn, sl, hostname))
++ if (sl == strlen(sn) /* catch \0 in SAN */
++ && ssl_match_cert_ident(sn, sl, hostname))
+ break;
+ }
+ }
+@@ -466,16 +475,27 @@ ssl_check_cert_ident(X509 * x, char *hos
+ if (match_ident == FALSE && ret == NULL) {
+ X509_NAME *xn;
+ char buf[2048];
++ int slen;
+
+ xn = X509_get_subject_name(x);
+
+- if (X509_NAME_get_text_by_NID(xn, NID_commonName,
+- buf, sizeof(buf)) == -1)
++ slen = X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf));
++ if ( slen == -1)
+ /* FIXME: gettextize? */
+ ret = Strnew_charp("Unable to get common name from peer cert");
+- else if (!ssl_match_cert_ident(buf, strlen(buf), hostname))
++ else if (slen != strlen(buf)
++ || !ssl_match_cert_ident(buf, strlen(buf), hostname)) {
++ /* replace \0 to make full string visible to user */
++ if (slen != strlen(buf)) {
++ int i;
++ for (i = 0; i < slen; ++i) {
++ if (!buf[i])
++ buf[i] = '!';
++ }
++ }
+ /* FIXME: gettextize? */
+ ret = Sprintf("Bad cert ident %s from %s", buf, hostname);
++ }
+ else
+ match_ident = TRUE;
+ }
+
diff --git a/www-client/w3m/w3m-0.5.2-r4.ebuild b/www-client/w3m/w3m-0.5.2-r4.ebuild
new file mode 100644
index 000000000000..e39e02090356
--- /dev/null
+++ b/www-client/w3m/w3m-0.5.2-r4.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-client/w3m/w3m-0.5.2-r4.ebuild,v 1.1 2010/06/19 17:43:51 matsuu Exp $
+
+EAPI="2"
+inherit eutils
+
+DESCRIPTION="Text based WWW browser, supports tables and frames"
+HOMEPAGE="http://w3m.sourceforge.net/"
+SRC_URI="mirror://sourceforge/w3m/${P}.tar.gz"
+
+LICENSE="w3m"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="X fbcon gpm gtk imlib lynxkeymap migemo nls nntp ssl unicode xface linguas_ja"
+
+# We cannot build w3m with gtk+2 w/o X because gtk+2 ebuild doesn't
+# allow us to build w/o X, so we have to give up framebuffer w3mimg....
+DEPEND=">=sys-libs/ncurses-5.2-r3
+ >=sys-libs/zlib-1.1.3-r2
+ >=dev-libs/boehm-gc-6.2
+ X? ( x11-libs/libXext x11-libs/libXdmcp )
+ gtk? ( >=x11-libs/gtk+-2 )
+ !gtk? ( imlib? ( >=media-libs/imlib2-1.1.0 ) )
+ xface? ( media-libs/compface )
+ gpm? ( >=sys-libs/gpm-1.19.3-r5 )
+ migemo? ( >=app-text/migemo-0.40 )
+ ssl? ( >=dev-libs/openssl-0.9.6b )"
+PROVIDE="virtual/w3m"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-ambwidth.patch"
+ # http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200708.month/4286.html
+ epatch "${FILESDIR}/${P}-form.patch"
+ epatch "${FILESDIR}/${P}-gc72.patch"
+ # from w3m-0.5.2-149.1.src.rpm(openSUSE)
+ epatch "${FILESDIR}/${PN}-CVE-2010-2074.patch"
+}
+
+src_configure() {
+ local myconf migemo_command imagelibval imageval
+
+ if use gtk ; then
+ imagelibval="gtk2"
+ elif use imlib ; then
+ imagelibval="imlib2"
+ fi
+
+ if [ ! -z "${imagelibval}" ] ; then
+ use X && imageval="${imageval}${imageval:+,}x11"
+ use X && use fbcon && imageval="${imageval}${imageval:+,}fb"
+ fi
+
+ if use migemo ; then
+ migemo_command="migemo -t egrep /usr/share/migemo/migemo-dict"
+ else
+ migemo_command="no"
+ fi
+
+ # emacs-w3m doesn't like "--enable-m17n --disable-unicode,"
+ # so we better enable or disable both. Default to enable
+ # m17n and unicode, see bug #47046.
+ if use linguas_ja ; then
+ if use unicode ; then
+ myconf="${myconf} --enable-japanese=U"
+ else
+ myconf="${myconf} --enable-japanese=E"
+ fi
+ elif use unicode ; then
+ myconf="${myconf} --with-charset=UTF-8"
+ else
+ myconf="${myconf} --with-charset=US-ASCII"
+ fi
+
+ # lynxkeymap IUSE flag. bug #49397
+ if use lynxkeymap ; then
+ myconf="${myconf} --enable-keymap=lynx"
+ else
+ myconf="${myconf} --enable-keymap=w3m"
+ fi
+
+ econf \
+ --with-editor=/usr/bin/vi \
+ --with-mailer=/bin/mail \
+ --with-browser=/usr/bin/firefox \
+ --with-termlib=curses \
+ --enable-image=${imageval:-no} \
+ --with-imagelib="${imagelibval:-no}" \
+ --with-migemo="${migemo_command}" \
+ --enable-m17n \
+ --enable-unicode \
+ $(use_enable gpm mouse) \
+ $(use_enable nls) \
+ $(use_enable nntp) \
+ $(use_enable ssl digest-auth) \
+ $(use_with ssl) \
+ $(use_enable xface) \
+ ${myconf} || die
+}
+
+src_compile() {
+ # parallel make borks, bug #215394.
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ # http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200307.month/3944.html
+ insinto /etc/${PN}
+ newins "${FILESDIR}/${PN}.mailcap" mailcap
+
+ insinto /usr/share/${PN}/Bonus
+ doins Bonus/*
+ dodoc README NEWS TODO ChangeLog
+ docinto doc-en ; dodoc doc/*
+ if use linguas_ja ; then
+ docinto doc-jp ; dodoc doc-jp/*
+ else
+ rm -rf "${D}"/usr/share/man/ja
+ fi
+}