summaryrefslogtreecommitdiff
path: root/security/cfs
diff options
context:
space:
mode:
authorBrian Feldman <green@FreeBSD.org>2004-05-19 21:20:01 +0000
committerBrian Feldman <green@FreeBSD.org>2004-05-19 21:20:01 +0000
commit02c3df91c47a72d402ade0b3af3e6a0b6ee9dbfe (patch)
tree16d7669ba445ea5fd7ae5ff3ed1767a5cec64f09 /security/cfs
parent- Update to version 0.99.1 (diff)
Back out the work-around for CFS's failure to use 8-bit filenames. It
appears to be crashing some people (but not others).
Notes
Notes: svn path=/head/; revision=109530
Diffstat (limited to 'security/cfs')
-rw-r--r--security/cfs/Makefile2
-rw-r--r--security/cfs/files/patch-cfs_fh.c71
2 files changed, 1 insertions, 72 deletions
diff --git a/security/cfs/Makefile b/security/cfs/Makefile
index 38d2e4f8d641..43df0eb952eb 100644
--- a/security/cfs/Makefile
+++ b/security/cfs/Makefile
@@ -7,7 +7,7 @@
PORTNAME= cfs
PORTVERSION= 1.4.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= security
MASTER_SITES= http://www.crypto.com/software/
diff --git a/security/cfs/files/patch-cfs_fh.c b/security/cfs/files/patch-cfs_fh.c
deleted file mode 100644
index f2fcf64686bf..000000000000
--- a/security/cfs/files/patch-cfs_fh.c
+++ /dev/null
@@ -1,71 +0,0 @@
---- cfs_fh.c.orig Sat Apr 17 20:44:41 2004
-+++ cfs_fh.c Sat Apr 17 23:01:11 2004
-@@ -225,7 +225,9 @@
- }
-
- /*
-- * set high order bits
-+ * Carefully frob the high order bits of s in a way that is both easily
-+ * reversible (see unchksum) and backwards-compatible (at least for 7-bit
-+ * characters).
- */
- chksum(s,l)
- char *s;
-@@ -236,16 +238,44 @@
- u_char bits[8];
-
- acc=0;
-- for (i=0; s[i]!='\0'; i++)
-- acc += s[i]*((i%6)+1);
-+ /* Everything we do here must be reproducible without knowledge of
-+ bit 7 because unchksum won't have that information. Therefore,
-+ only accumulate the lower 7 bits of each char and stop at the
-+ first occurrence of either 0x00 or 0x80. Note that, for inputs
-+ with bit 7 constantly zero, this is equivalent to looking at the
-+ whole string. */
-+ for (i=0; (s[i]&0x7f) != '\0'; i++)
-+ acc += (s[i]&0x7f)*((i%6)+1);
-+ for (; s[i]!='\0'; i++) /* advance i if we stopped at a 0x80 */
-+ ;
- for (i++; i<l; i++) /* fill up the end */
- s[i] = s[i%8];
- for (i=0; i<8; i++)
- bits[i] = (acc<<(i%8))&0x80;
- for (i=0; i<l; i++)
-- s[i] |= bits[i%8];
-+ s[i] ^= bits[i%8];
- }
-
-+unchksum(s,l)
-+ char *s;
-+ long l;
-+{
-+ u_long acc;
-+ int i;
-+ u_char bits[8];
-+
-+ acc=0;
-+ for (i=0; (s[i]&0x7f) != '\0'; i++)
-+ acc += (s[i]&0x7f)*((i%6)+1);
-+ for (i=0; i<8; i++)
-+ bits[i] = (acc<<(i%8))&0x80;
-+ for (i=0; i<l; i++) {
-+ s[i] ^= bits[i%8];
-+ /* not sure whether this actually buys any performance */
-+ if(s[i]=='\0')
-+ break; /* found end of filename, can stop here */
-+ }
-+}
-
- /*
- * decrypt path component
-@@ -286,8 +316,7 @@
- if (l%CFSBLOCK)
- return NULL;
- dodecrypt(key,clearstring,l,10241,zerovect);
-- for (i=0; (clearstring[i]&0x7f) !='\0'; i++)
-- clearstring[i] &= 0x7f;
-+ unchksum(clearstring,l);
- clearstring[i]='\0';
- return clearstring;
- }