OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src openpkg-web openpkg$ Date: 10-Sep-2003 20:01:55
Branch: HEAD Handle: 2003091019015203
Modified files:
openpkg-re/vcheck vc.kerberos
openpkg-src/kerberos kerberos.patch kerberos.spec
openpkg-web news.txt
Log:
upgrading package: kerberos 1.2.8 -> 1.3.1
Summary:
Revision Changes Path
1.5 +4 -3 openpkg-re/vcheck/vc.kerberos
1.5 +20 -323 openpkg-src/kerberos/kerberos.patch
1.35 +3 -4 openpkg-src/kerberos/kerberos.spec
1.6491 +1 -0 openpkg-web/news.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-re/vcheck/vc.kerberos
============================================================================
$ cvs diff -u -r1.4 -r1.5 vc.kerberos
--- openpkg-re/vcheck/vc.kerberos 10 Apr 2003 16:24:34 -0000 1.4
+++ openpkg-re/vcheck/vc.kerberos 10 Sep 2003 18:01:52 -0000 1.5
@@ -1,8 +1,9 @@
- config = {
+config = {
}
prog kerberos = {
- version = 1.2.8
- url =
http://www.mirrors.wiretapped.net/security/cryptography/apps/kerberos/krb5-mit/unix/
+ version = 1.3.1
+ url = http://www.crypto-publish.org/mit-kerberos5/index.html
regex = krb5-(__VER__)\.tar\.gz
}
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/kerberos/kerberos.patch
============================================================================
$ cvs diff -u -r1.4 -r1.5 kerberos.patch
--- openpkg-src/kerberos/kerberos.patch 28 Jul 2003 20:44:56 -0000 1.4
+++ openpkg-src/kerberos/kerberos.patch 10 Sep 2003 18:01:55 -0000 1.5
@@ -1,64 +1,16 @@
---- krb5-1.2.8/src/appl/telnet/telnet/commands.c.dist 2003-05-16
12:24:35.000000000 +0200
-+++ krb5-1.2.8/src/appl/telnet/telnet/commands.c 2003-05-16 12:31:39.000000000
+0200
-@@ -60,7 +60,7 @@
- #include <netdb.h>
- #include <ctype.h>
- #include <pwd.h>
--#include <varargs.h>
-+#include <stdarg.h>
+diff -ru3 krb5-1.3.1.orig/src/appl/gssftp/ftp/cmds.c
krb5-1.3.1/src/appl/gssftp/ftp/cmds.c
+--- krb5-1.3.1.orig/src/appl/gssftp/ftp/cmds.c 2003-06-17 00:37:39.000000000
+0200
++++ krb5-1.3.1/src/appl/gssftp/ftp/cmds.c 2003-09-10 19:45:29.000000000 +0200
+@@ -65,6 +65,7 @@
#include <errno.h>
- #ifdef HAVE_VFORK_H
- #include <vfork.h>
-@@ -115,7 +115,7 @@
- extern char **genget();
- extern int Ambiguous();
-
--static call();
-+static call(void *va_alist, ...);
-
- typedef struct {
- char *name; /* command name */
-@@ -2698,8 +2698,7 @@
-
- /*VARARGS1*/
- static
--call(va_alist)
-- va_dcl
-+call(void *va_alist, ...)
- {
- va_list ap;
- typedef int (*intrtn_t)();
-@@ -2707,8 +2706,8 @@
- char *args[100];
- int argno = 0;
-
-- va_start(ap);
-- routine = (va_arg(ap, intrtn_t));
-+ va_start(ap, va_alist);
-+ routine = (intrtn_t) va_alist;
- while ((args[argno++] = va_arg(ap, char *)) != 0) {
- ;
- }
---- krb5-1.2.8/src/appl/gssftp/ftp/cmds.c.dist Wed Jun 25 17:41:28 2003
-+++ krb5-1.2.8/src/appl/gssftp/ftp/cmds.c Wed Jun 25 17:43:54 2003
-@@ -52,6 +52,7 @@
- #include <netdb.h>
#include <ctype.h>
#include <time.h>
+#include <limits.h>
- #include <netinet/in.h>
#ifdef HAVE_GETCWD
-@@ -69,6 +70,7 @@
- extern char **ftpglob();
- extern char *home;
- extern char *remglob();
-+static int checkglob(int fd, const char *pattern);
- extern char *getenv();
- #ifndef HAVE_STRERROR
- #define strerror(error) (sys_errlist[error])
-@@ -88,6 +90,64 @@
- extern int do_auth();
+ #define getwd(x) getcwd(x,MAXPATHLEN)
+@@ -101,6 +102,30 @@
+ static char *domap (char *);
/*
+ * pipeprotect: protect against "special" local filenames by prepending
@@ -85,44 +37,10 @@
+}
+
+/*
-+ * Look for embedded ".." in a pathname and change it to "!!", printing
-+ * a warning.
-+ */
-+static char *pathprotect(char *name)
-+{
-+ int gotdots=0, i, len;
-+
-+ /* Convert null terminator to trailing / to catch a trailing ".." */
-+ len = strlen(name)+1;
-+ name[len-1] = '/';
-+
-+ /*
-+ * State machine loop. gotdots is < 0 if not looking at dots,
-+ * 0 if we just saw a / and thus might start getting dots,
-+ * and the count of dots seen so far if we have seen some.
-+ */
-+ for (i=0; i<len; i++) {
-+ if (name[i]=='.' && gotdots>=0) gotdots++;
-+ else if (name[i]=='/' && gotdots<0) gotdots=0;
-+ else if (name[i]=='/' && gotdots==2) {
-+ printf("Warning: embedded .. in %.*s (changing to !!)\n",
-+ len-1, name);
-+ name[i-1] = '!';
-+ name[i-2] = '!';
-+ gotdots = 0;
-+ }
-+ else if (name[i]=='/') gotdots = 0;
-+ else gotdots = -1;
-+ }
-+ name[len-1] = 0;
-+ return name;
-+}
-+
-+/*
* `Another' gets another argument, and stores the new argc and argv.
* It reverts to the top level (via main.c's intr()) on EOF/error.
*
-@@ -832,7 +892,15 @@
+@@ -844,7 +869,15 @@
if (argc == 2) {
argc++;
@@ -139,29 +57,7 @@
loc++;
}
if (argc < 2 && !another(&argc, &argv, "remote-file"))
-@@ -1007,8 +1075,19 @@
- if (mapflag) {
- tp = domap(tp);
- }
-- recvrequest("RETR", tp, cp, "w",
-- tp != cp || !interactive);
-+ /* Reject embedded ".." */
-+ tp = pathprotect(tp);
-+
-+ /* Prepend ./ to "-" or "!*" or leading "/" */
-+ tp = pipeprotect(tp);
-+ if (tp == NULL) {
-+ /* hmm... how best to handle this? */
-+ mflag = 0;
-+ }
-+ else {
-+ recvrequest("RETR", tp, cp, "w",
-+ tp != cp || !interactive);
-+ }
- if (!mflag && fromatty) {
- ointer = interactive;
- interactive = 1;
-@@ -1024,16 +1103,14 @@
+@@ -1033,16 +1066,14 @@
}
char *
@@ -170,223 +66,24 @@
- int doswitch;
+remglob(char *argv[], int doswitch)
{
+ #ifdef _WIN32
+ char *temp = NULL;
+ #else
char temp[16];
+ #endif
- static char buf[MAXPATHLEN];
-+ static char buf[PATH_MAX];
++ static char buf[PATH_MAX];
static FILE *ftemp = NULL;
static char **args;
-- int oldverbose, oldhash;
-- char *cp, *mode;
-+ int oldverbose, oldhash, badglob = 0;
-+ char *cp;
-
- if (!mflag) {
- if (!doglob) {
-@@ -1055,36 +1132,154 @@
- return (cp);
- }
- if (ftemp == NULL) {
-- (void) strncpy(temp, _PATH_TMP, sizeof(temp) - 1);
-- temp[sizeof(temp) - 1] = '\0';
-- (void) mktemp(temp);
-+ int oldumask, fd;
-+ (void) strcpy(temp, _PATH_TMP);
-+
-+ /* libc 5.2.18 creates with mode 0666, which is dumb */
-+ oldumask = umask(077);
-+ fd = mkstemp(temp);
-+ umask(oldumask);
-+
-+ if (fd<0) {
-+ printf("Error creating temporary file, oops\n");
-+ return NULL;
-+ }
-+
- oldverbose = verbose, verbose = 0;
- oldhash = hash, hash = 0;
- if (doswitch) {
- pswitch(!proxy);
- }
-- for (mode = "w"; *++argv != NULL; mode = "a")
-- recvrequest ("NLST", temp, *argv, mode, 0);
-+ while (*++argv != NULL) {
-+ int dupfd = dup(fd);
-+
-+ recvrequest ("NLST", temp, *argv, "a", 0);
-+ if (!checkglob(dupfd, *argv)) {
-+ badglob = 1;
-+ break;
-+ }
-+ }
-+ unlink(temp);
-+
- if (doswitch) {
- pswitch(!proxy);
- }
- verbose = oldverbose; hash = oldhash;
-- ftemp = fopen(temp, "r");
-- (void) unlink(temp);
-+ if (badglob) {
-+ printf("Refusing to handle insecure file list\n");
-+ close(fd);
-+ return NULL;
-+ }
-+ ftemp = fdopen(fd, "r");
- if (ftemp == NULL) {
- printf("can't find list of remote files, oops\n");
- return (NULL);
- }
-+ rewind(ftemp);
- }
- if (fgets(buf, sizeof (buf), ftemp) == NULL) {
- (void) fclose(ftemp), ftemp = NULL;
- return (NULL);
- }
-- if ((cp = strchr(buf, '\n')) != NULL)
-+ if ((cp = index(buf, '\n')) != NULL)
- *cp = '\0';
- return (buf);
- }
-
-+/*
-+ * Check whether given pattern matches `..'
-+ * We assume only a glob pattern starting with a dot will match
-+ * dot entries on the server.
-+ */
-+static int
-+isdotdotglob(const char *pattern)
-+{
-+ int havedot = 0;
-+ char c;
-+
-+ if (*pattern++ != '.')
-+ return 0;
-+ while ((c = *pattern++) != '\0' && c != '/') {
-+ if (c == '*' || c == '?')
-+ continue;
-+ if (c == '.' && havedot++)
-+ return 0;
-+ }
-+ return 1;
-+}
-+
-+/*
-+ * This function makes sure the list of globbed files returned from
-+ * the server doesn't contain anything dangerous such as
-+ * /home/<yourname>/.forward, or ../.forward,
-+ * or |mail [EMAIL PROTECTED] </etc/passwd, etc.
-+ * Covered areas:
-+ * - returned name starts with / but glob pattern doesn't
-+ * - glob pattern starts with / but returned name doesn't
-+ * - returned name starts with |
-+ * - returned name contains .. in a position where glob
-+ * pattern doesn't match ..
-+ * I.e. foo/.* allows foo/../bar but not foo/.bar/../fly
-+ *
-+ * Note that globbed names starting with / should really be stored
-+ * under the current working directory; this is handled in mget above.
-+ * --okir
-+ */
-+static int
-+checkglob(int fd, const char *pattern)
-+{
-+ const char *sp;
-+ char buffer[MAXPATHLEN], dotdot[MAXPATHLEN];
-+ int okay = 1, nrslash, initial, nr;
-+ FILE *fp;
-+
-+ /* Find slashes in glob pattern, and verify whether component
-+ * matches `..'
-+ */
-+ initial = (pattern[0] == '/');
-+ for (sp = pattern, nrslash = 0; sp != 0; sp = strchr(sp, '/')) {
-+ while (*sp == '/')
-+ sp++;
-+ if (nrslash >= MAXPATHLEN) {
-+ printf("Incredible pattern: %s\n", pattern);
-+ return 0;
-+ }
-+ dotdot[nrslash++] = isdotdotglob(sp);
-+ }
-+
-+ fp = fdopen(fd, "r");
-+ while (okay && fgets(buffer, sizeof(buffer), fp) != NULL) {
-+ char *sp;
-+
-+ if ((sp = strchr(buffer, '\n')) != 0) {
-+ *sp = '\0';
-+ } else {
-+ printf("Extremely long filename from server: %s",
-+ buffer);
-+ okay = 0;
-+ break;
-+ }
-+ if (buffer[0] == '|'
-+ || (buffer[0] != '/' && initial)
-+ || (buffer[0] == '/' && !initial))
-+ okay = 0;
-+ for (sp = buffer, nr = 0; sp; sp = strchr(sp, '/'), nr++) {
-+ while (*sp == '/')
-+ sp++;
-+ if (sp[0] == '.' && !strncmp(sp, "../", 3)
-+ && (nr >= nrslash || !dotdot[nr]))
-+ okay = 0;
-+ }
-+ }
-+
-+ if (!okay)
-+ printf("Filename provided by server "
-+ "doesn't match pattern `%s': %s\n", pattern, buffer);
-+
-+ fclose(fp);
-+ return okay;
-+}
-+
- char *
- onoff(bool)
- int bool;
---- krb5-1.2.8/src/util/ss/pager.c.dist 2003-07-28 22:14:13.000000000 +0200
-+++ krb5-1.2.8/src/util/ss/pager.c 2003-07-28 22:14:44.000000000 +0200
-@@ -10,6 +10,7 @@
- #include "ss_internal.h"
+ int oldverbose, oldhash;
+diff -ru3 krb5-1.3.1.orig/src/util/ss/pager.c krb5-1.3.1/src/util/ss/pager.c
+--- krb5-1.3.1.orig/src/util/ss/pager.c 2003-01-06 00:28:05.000000000 +0100
++++ krb5-1.3.1/src/util/ss/pager.c 2003-09-10 19:11:35.000000000 +0200
+@@ -11,6 +11,7 @@
#include "copyright.h"
+ #include <errno.h>
#include <stdio.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/file.h>
#include <signal.h>
-@@ -17,7 +18,6 @@
- static char MORE[] = "more";
- extern char *_ss_pager_name;
- extern char *getenv();
--extern int errno;
-
- /*
- * this needs a *lot* of work....
---- krb5-1.2.8/src/util/ss/help.c.dist 2003-07-28 22:14:19.000000000 +0200
-+++ krb5-1.2.8/src/util/ss/help.c 2003-07-28 22:14:33.000000000 +0200
-@@ -8,12 +8,11 @@
- #include <sys/types.h>
- #include <sys/file.h>
- #include <fcntl.h> /* just for O_* */
-+#include <errno.h>
- #include <sys/wait.h>
- #include "ss_internal.h"
- #include "copyright.h"
-
--extern int errno;
--
- void ss_help (argc, argv, sci_idx, info_ptr)
- int argc;
- char const * const *argv;
---- krb5-1.2.8/src/util/ss/parse.c.dist 2003-07-28 22:30:57.000000000 +0200
-+++ krb5-1.2.8/src/util/ss/parse.c 2003-07-28 22:31:49.000000000 +0200
-@@ -7,6 +7,8 @@
- #include "ss_internal.h"
- #include "copyright.h"
-
-+#include <errno.h>
-+
-
- enum parse_mode { WHITESPACE, TOKEN, QUOTED_STRING };
-
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/kerberos/kerberos.spec
============================================================================
$ cvs diff -u -r1.34 -r1.35 kerberos.spec
--- openpkg-src/kerberos/kerberos.spec 26 Aug 2003 15:49:56 -0000 1.34
+++ openpkg-src/kerberos/kerberos.spec 10 Sep 2003 18:01:55 -0000 1.35
@@ -32,14 +32,14 @@
Distribution: OpenPKG [PLUS]
Group: Cryptography
License: MIT
-Version: 1.2.8
-Release: 20030826
+Version: 1.3.1
+Release: 20030910
# package options
%option with_fsl yes
# list of sources
-Source0:
http://www.mirrors.wiretapped.net/security/cryptography/apps/kerberos/krb5-mit/unix/krb5-%{version}.tar.gz
+Source0:
http://www.crypto-publish.org/dist/mit-kerberos5/krb5-%{version}.tar.gz
Source1: rc.kerberos
Source2: fsl.kerberos
Source3: krb5.conf
@@ -143,7 +143,6 @@
$RPM_BUILD_ROOT%{l_prefix}/libexec/kerberos/
rmdir $RPM_BUILD_ROOT%{l_prefix}/sbin
- rmdir $RPM_BUILD_ROOT%{l_prefix}/include/asn.1
mv \
$RPM_BUILD_ROOT%{l_prefix}/include/*.h \
$RPM_BUILD_ROOT%{l_prefix}/include/gssapi \
@@ .
patch -p0 <<'@@ .'
Index: openpkg-web/news.txt
============================================================================
$ cvs diff -u -r1.6490 -r1.6491 news.txt
--- openpkg-web/news.txt 10 Sep 2003 17:11:34 -0000 1.6490
+++ openpkg-web/news.txt 10 Sep 2003 18:01:53 -0000 1.6491
@@ -1,3 +1,4 @@
+10-Sep-2003: Upgraded package: P<kerberos-1.3.1-20030910>
10-Sep-2003: Upgraded package: P<postfix-2.0.15-20030910>
10-Sep-2003: Upgraded package: P<spread-3.17.1-20030910>
10-Sep-2003: Upgraded package: P<samhain-1.7.11-20030910>
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]