forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'github/pr/2627'
* github/pr/2627: dev-vcs/cvs: security fix, QA fix and musl compilation fix Fixes: gentoo#2627 Signed-off-by: Robin H. Johnson <[email protected]>
- Loading branch information
Showing
8 changed files
with
178 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=6 | ||
|
||
inherit pam toolchain-funcs | ||
|
||
DESCRIPTION="Concurrent Versions System - source code revision control tools" | ||
HOMEPAGE="http://cvs.nongnu.org/" | ||
|
||
SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2 | ||
doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2 | ||
mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf | ||
mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )" | ||
|
||
LICENSE="GPL-2 LGPL-2" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 | ||
~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd | ||
~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint | ||
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" | ||
|
||
IUSE="crypt doc kerberos nls pam server" | ||
RESTRICT="test" | ||
|
||
DEPEND=">=sys-libs/zlib-1.1.4 | ||
kerberos? ( virtual/krb5 ) | ||
pam? ( virtual/pam )" | ||
RDEPEND="${DEPEND}" | ||
|
||
src_unpack() { | ||
unpack ${P}.tar.bz2 | ||
use doc && unpack cederqvist-${PV}.html.tar.bz2 | ||
} | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${P}-cvsbug-tmpfix.patch | ||
"${FILESDIR}"/${P}-openat.patch | ||
"${FILESDIR}"/${P}-block-requests.patch | ||
"${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch | ||
"${FILESDIR}"/${P}-install-sh.patch | ||
"${FILESDIR}"/${P}-hash-nameclash.patch # for AIX | ||
"${FILESDIR}"/${P}-getdelim.patch # 314791 | ||
"${FILESDIR}"/${PN}-1.12.12-rcs2log-coreutils.patch # 144114 | ||
"${FILESDIR}"/${P}-mktime-x32.patch # 395641 | ||
"${FILESDIR}"/${P}-fix-massive-leak.patch | ||
"${FILESDIR}"/${P}-mktime-configure.patch #220040 #570208 | ||
"${FILESDIR}"/${P}-CVE-2012-0804.patch | ||
"${FILESDIR}"/${P}-format-security.patch | ||
"${FILESDIR}"/${P}-musl.patch | ||
) | ||
DOCS=( BUGS ChangeLog{,.zoo} DEVEL-CVS FAQ HACKING MINOR-BUGS NEWS \ | ||
PROJECTS README TESTS TODO ) | ||
|
||
src_prepare() { | ||
default | ||
|
||
sed -i "/^AR/s/ar/$(tc-getAR)/" diff/Makefile.in lib/Makefile.in || die | ||
} | ||
|
||
src_configure() { | ||
if tc-is-cross-compiler ; then | ||
# Sane defaults when cross-compiling (as these tests want to | ||
# try and execute code). | ||
export cvs_cv_func_printf_ptr="yes" | ||
fi | ||
econf \ | ||
--with-external-zlib \ | ||
--with-tmpdir=${EPREFIX%/}/tmp \ | ||
$(use_enable crypt encryption) \ | ||
$(use_with kerberos gssapi) \ | ||
$(use_enable nls) \ | ||
$(use_enable pam) \ | ||
$(use_enable server) | ||
} | ||
|
||
src_install() { | ||
# Not installed into emacs site-lisp because it clobbers the normal C | ||
# indentations. | ||
DOCS+=( cvs-format.el ) | ||
|
||
if use doc; then | ||
DOCS+=( "${DISTDIR}"/cederqvist-${PV}.{pdf,ps} ) | ||
HTML_DOCS=( ../cederqvist-${PV}.html/. ) | ||
fi | ||
|
||
default | ||
|
||
use doc && dosym cvs.html /usr/share/doc/${PF}/html/index.html | ||
|
||
if use server; then | ||
newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c | ||
insinto /etc/xinetd.d | ||
newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver | ||
newenvd "${FILESDIR}"/01-cvs-env.d 01cvs | ||
fi | ||
|
||
newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs | ||
} | ||
|
||
pkg_postinst() { | ||
use server || elog "If you want any CVS server functionality, you MUST emerge with USE=server!" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
[CVE-2012-0804] Fix proxy response parser | ||
|
||
If proxy sends overlong HTTP vesion string, the string will be copied | ||
to unallocatd space (write_buf) causing heap overflow. | ||
|
||
This patch fixes it by ignoring the HTTP version string and checking | ||
the response line has been parsed correctly. | ||
|
||
See <https://bugzilla.redhat.com/show_bug.cgi?id=773699> for more | ||
details. | ||
|
||
Index: src/client.c | ||
=================================================================== | ||
RCS file: /sources/cvs/ccvs/src/client.c,v | ||
retrieving revision 1.483 | ||
diff -u -r1.483 client.c | ||
--- a/src/client.c 18 Nov 2008 22:59:02 -0000 1.483 | ||
+++ b/src/client.c 26 Jan 2012 16:32:25 -0000 | ||
@@ -4339,9 +4339,9 @@ | ||
* code. | ||
*/ | ||
read_line_via (from_server, to_server, &read_buf); | ||
- sscanf (read_buf, "%s %d", write_buf, &codenum); | ||
+ count = sscanf (read_buf, "%*s %d", &codenum); | ||
|
||
- if ((codenum / 100) != 2) | ||
+ if (count != 1 || (codenum / 100) != 2) | ||
error (1, 0, "proxy server %s:%d does not support http tunnelling", | ||
root->proxy_hostname, proxy_port_number); | ||
free (read_buf); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- a/diff/diff3.c | ||
+++ b/diff/diff3.c | ||
@@ -1503,7 +1503,7 @@ | ||
line = 0; | ||
do | ||
{ | ||
- printf_output (line_prefix); | ||
+ printf_output ("%s", line_prefix); | ||
cp = D_RELNUM (ptr, realfile, line); | ||
length = D_RELLEN (ptr, realfile, line); | ||
write_output (cp, length); | ||
--- a/src/main.c | ||
+++ b/src/main.c | ||
@@ -1375,7 +1375,7 @@ | ||
{ | ||
(void) fprintf (stderr, *cpp++, program_name, cvs_cmd_name); | ||
for (; *cpp; cpp++) | ||
- (void) fprintf (stderr, *cpp); | ||
+ (void) fprintf (stderr, "%s", *cpp); | ||
exit (EXIT_FAILURE); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
http://gcc.gnu.org/ml/gcc/2003-04/msg00518.html | ||
|
||
--- a/lib/regex.c | ||
+++ b/lib/regex.c | ||
@@ -8184,7 +8184,7 @@ | ||
if (msg_size > errbuf_size) | ||
{ | ||
#if defined HAVE_MEMPCPY || defined _LIBC | ||
- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; | ||
+ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; | ||
#else | ||
memcpy (errbuf, msg, errbuf_size - 1); | ||
errbuf[errbuf_size - 1] = 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters