forked from ports/contrib
cvs: dropped unmaintained port
This commit is contained in:
parent
af50a4e0e7
commit
757a28d556
@ -1,9 +0,0 @@
|
||||
drwxr-xr-x root/root usr/
|
||||
drwxr-xr-x root/root usr/bin/
|
||||
-rwxr-xr-x root/root usr/bin/cvs
|
||||
drwxr-xr-x root/root usr/share/
|
||||
drwxr-xr-x root/root usr/share/man/
|
||||
drwxr-xr-x root/root usr/share/man/man1/
|
||||
-rw-r--r-- root/root usr/share/man/man1/cvs.1.gz
|
||||
drwxr-xr-x root/root usr/share/man/man5/
|
||||
-rw-r--r-- root/root usr/share/man/man5/cvs.5.gz
|
@ -1,7 +0,0 @@
|
||||
untrusted comment: verify with /etc/ports/contrib.pub
|
||||
RWSagIOpLGJF31TVRx6sm6VNjnOhTkEKb0Ek2Y5dam2P+tAl91vRtiEuJUMoDFcvK/lbzcFvS+fWAFPbIhv8MCeEc9l9oP7apgM=
|
||||
SHA256 (Pkgfile) = 67eb0fbe47dbd0907a97b903d80bffd7f54c330b06dd0cddb706829408fe4522
|
||||
SHA256 (.footprint) = 4a250f4ca7e8b8d17fd0268ec2978e406b084fab5f13e66a5c2bc249e61255e8
|
||||
SHA256 (cvs-1.11.23.tar.bz2) = 400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9
|
||||
SHA256 (CVE-2010-3846.diff) = cba2498991e1c24d565300271a6b38073cf8e2a31719a5e345fa7f9929b8f973
|
||||
SHA256 (getline-x86_64.diff) = 406df0122466f902f31b828a7592c6b8752ed4b7d56c43df471ea67d126844fd
|
@ -1,148 +0,0 @@
|
||||
See http://cve.mitre.org/cgi-bin/cvename.cgi?name=2010-3846 for more information.
|
||||
Origin: http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/src/rcs.c?r1=1.262.4.65&r2=1.262.4.66&sortby=rev&view=patch
|
||||
--- rcs.c 2008/05/07 15:34:16 1.262.4.65
|
||||
+++ rcs.c 2010/10/21 13:24:15 1.262.4.66
|
||||
@@ -7128,7 +7128,7 @@
|
||||
struct deltafrag *dfhead;
|
||||
struct deltafrag **dftail;
|
||||
struct deltafrag *df;
|
||||
- unsigned long numlines, lastmodline, offset;
|
||||
+ unsigned long numlines, offset;
|
||||
struct linevector lines;
|
||||
int err;
|
||||
|
||||
@@ -7202,12 +7202,12 @@
|
||||
|
||||
/* New temp data structure to hold new org before
|
||||
copy back into original structure. */
|
||||
- lines.nlines = lines.lines_alloced = numlines;
|
||||
+ lines.lines_alloced = numlines;
|
||||
lines.vector = xmalloc (numlines * sizeof *lines.vector);
|
||||
|
||||
/* We changed the list order to first to last -- so the
|
||||
list never gets larger than the size numlines. */
|
||||
- lastmodline = 0;
|
||||
+ lines.nlines = 0;
|
||||
|
||||
/* offset created when adding/removing lines
|
||||
between new and original structure */
|
||||
@@ -7216,25 +7216,24 @@
|
||||
for (df = dfhead; df != NULL; )
|
||||
{
|
||||
unsigned int ln;
|
||||
- unsigned long deltaend;
|
||||
+ unsigned long newpos = df->pos - offset;
|
||||
|
||||
- if (df->pos > orig_lines->nlines)
|
||||
+ if (newpos < lines.nlines || newpos > numlines)
|
||||
err = 1;
|
||||
|
||||
/* On error, just free the rest of the list. */
|
||||
if (!err)
|
||||
{
|
||||
- /* Here we need to get to the line where the next insert will
|
||||
+ /* Here we need to get to the line where the next change will
|
||||
begin, which is DF->pos in ORIG_LINES. We will fill up to
|
||||
DF->pos - OFFSET in LINES with original items. */
|
||||
- for (deltaend = df->pos - offset;
|
||||
- lastmodline < deltaend;
|
||||
- lastmodline++)
|
||||
+ while (lines.nlines < newpos)
|
||||
{
|
||||
/* we need to copy from the orig structure into new one */
|
||||
- lines.vector[lastmodline] =
|
||||
- orig_lines->vector[lastmodline + offset];
|
||||
- lines.vector[lastmodline]->refcount++;
|
||||
+ lines.vector[lines.nlines] =
|
||||
+ orig_lines->vector[lines.nlines + offset];
|
||||
+ lines.vector[lines.nlines]->refcount++;
|
||||
+ lines.nlines++;
|
||||
}
|
||||
|
||||
switch (df->type)
|
||||
@@ -7246,7 +7245,12 @@
|
||||
struct line *q;
|
||||
int nextline_newline;
|
||||
size_t nextline_len;
|
||||
-
|
||||
+
|
||||
+ if (newpos + df->nlines > numlines)
|
||||
+ {
|
||||
+ err = 1;
|
||||
+ break;
|
||||
+ }
|
||||
textend = df->new_lines + df->len;
|
||||
nextline_newline = 0;
|
||||
nextline_text = df->new_lines;
|
||||
@@ -7271,8 +7275,7 @@
|
||||
q->has_newline = nextline_newline;
|
||||
q->refcount = 1;
|
||||
memcpy (q->text, nextline_text, nextline_len);
|
||||
- lines.vector[lastmodline++] = q;
|
||||
- offset--;
|
||||
+ lines.vector[lines.nlines++] = q;
|
||||
|
||||
nextline_text = (char *)p + 1;
|
||||
nextline_newline = 0;
|
||||
@@ -7286,11 +7289,11 @@
|
||||
q->has_newline = nextline_newline;
|
||||
q->refcount = 1;
|
||||
memcpy (q->text, nextline_text, nextline_len);
|
||||
- lines.vector[lastmodline++] = q;
|
||||
+ lines.vector[lines.nlines++] = q;
|
||||
|
||||
/* For each line we add the offset between the #'s
|
||||
decreases. */
|
||||
- offset--;
|
||||
+ offset -= df->nlines;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -7301,14 +7304,20 @@
|
||||
if (df->pos + df->nlines > orig_lines->nlines)
|
||||
err = 1;
|
||||
else if (delvers)
|
||||
+ {
|
||||
for (ln = df->pos; ln < df->pos + df->nlines; ++ln)
|
||||
+ {
|
||||
if (orig_lines->vector[ln]->refcount > 1)
|
||||
+ {
|
||||
/* Annotate needs this but, since the original
|
||||
* vector is disposed of before returning from
|
||||
* this function, we only need keep track if
|
||||
* there are multiple references.
|
||||
*/
|
||||
orig_lines->vector[ln]->vers = delvers;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -7328,21 +7337,20 @@
|
||||
else
|
||||
{
|
||||
/* add the rest of the remaining lines to the data vector */
|
||||
- for (; lastmodline < numlines; lastmodline++)
|
||||
+ while (lines.nlines < numlines)
|
||||
{
|
||||
/* we need to copy from the orig structure into new one */
|
||||
- lines.vector[lastmodline] = orig_lines->vector[lastmodline
|
||||
+ lines.vector[lines.nlines] = orig_lines->vector[lines.nlines
|
||||
+ offset];
|
||||
- lines.vector[lastmodline]->refcount++;
|
||||
+ lines.vector[lines.nlines]->refcount++;
|
||||
+ lines.nlines++;
|
||||
}
|
||||
|
||||
/* Move the lines vector to the original structure for output,
|
||||
* first deleting the old.
|
||||
*/
|
||||
linevector_free (orig_lines);
|
||||
- orig_lines->vector = lines.vector;
|
||||
- orig_lines->lines_alloced = numlines;
|
||||
- orig_lines->nlines = lines.nlines;
|
||||
+ *orig_lines = lines;
|
||||
}
|
||||
|
||||
return !err;
|
22
cvs/Pkgfile
22
cvs/Pkgfile
@ -1,22 +0,0 @@
|
||||
# Description: Concurrent Versions System
|
||||
# URL: https://www.nongnu.org/cvs/
|
||||
# Maintainer: John Vogel, jvogel4 at stny dot rr dot com
|
||||
|
||||
name=cvs
|
||||
version=1.11.23
|
||||
release=4
|
||||
source=(https://ftp.gnu.org/gnu/non-gnu/cvs/source/stable/$version/$name-$version.tar.bz2 \
|
||||
CVE-2010-3846.diff getline-x86_64.diff)
|
||||
|
||||
build() {
|
||||
cd $name-$version
|
||||
patch -N src/rcs.c $SRC/CVE-2010-3846.diff
|
||||
patch -Np1 < $SRC/getline-x86_64.diff
|
||||
./configure --prefix=/usr --disable-server
|
||||
make
|
||||
make DESTDIR=$PKG install
|
||||
make -C man DESTDIR=$PKG install-man
|
||||
rm -r $PKG/usr/share/{cvs,info}
|
||||
rm -r $PKG/usr/share/man/man8
|
||||
rm $PKG/usr/bin/{cvsbug,rcs2log}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
This is required on x86_64 but does no harm on i686
|
||||
Source: http://repos.archlinux.org/wsvn/packages/cvs/repos/extra-x86_64/cvs-1.11.23-getline64.patch
|
||||
--- 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
|
Loading…
x
Reference in New Issue
Block a user