summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/namespace.httpd41
-rw-r--r--lib/vgadb11
-rwxr-xr-xrc/bin/9fs6
-rwxr-xr-xrc/bin/E16
-rwxr-xr-xrc/bin/ape/egrep2
-rwxr-xr-xrc/bin/ape/fgrep2
-rwxr-xr-xrc/bin/ape/ln2
-rwxr-xr-xrc/bin/cpurc9
-rwxr-xr-xrc/bin/service/tcp170105
-rwxr-xr-xrc/bin/sysupdate2
-rw-r--r--sys/include/libsec.h20
-rw-r--r--sys/lib/python/mercurial/store.py2
-rw-r--r--sys/lib/python/mercurial/util.py2
-rw-r--r--sys/src/9/boot/boot.h2
-rw-r--r--sys/src/9/boot/bootfs.proto3
-rwxr-xr-xsys/src/9/boot/bootrc2
-rwxr-xr-xsys/src/9/boot/net.rc10
-rw-r--r--sys/src/9/pc/etheriwl.c5
-rw-r--r--sys/src/9/port/chan.c4
-rw-r--r--sys/src/9/port/devssl.c2
-rw-r--r--sys/src/9/port/devtls.c2
-rw-r--r--sys/src/9/port/proc.c3
-rw-r--r--sys/src/9/port/syscallfmt.c2
-rw-r--r--sys/src/cmd/auth/lib/okpasswd.c1
-rw-r--r--sys/src/cmd/aux/consolefs.c158
-rw-r--r--sys/src/cmd/cpu.c2
-rw-r--r--sys/src/cmd/gs/amd64.h4
-rw-r--r--sys/src/cmd/ip/httpd/sendfd.c6
-rw-r--r--sys/src/cmd/ip/tftpd.c3
-rw-r--r--sys/src/cmd/mk/run.c2
-rw-r--r--sys/src/libc/fmt/snprint.c1
-rw-r--r--sys/src/libcontrol/control.c5
-rw-r--r--sys/src/libdraw/newwindow.c1
-rw-r--r--sys/src/libmach/vdb.c5
-rw-r--r--sys/src/libsec/port/const.c18
-rw-r--r--sys/src/libsec/port/ecc.c125
-rw-r--r--sys/src/libsec/port/mkfile1
-rw-r--r--sys/src/libsec/port/thumb.c2
-rw-r--r--sys/src/libsec/port/tlshand.c84
-rw-r--r--sys/src/libsec/port/x509.c2
-rw-r--r--sys/src/libthread/id.c2
-rw-r--r--sys/src/libthread/main.c2
42 files changed, 219 insertions, 360 deletions
diff --git a/lib/namespace.httpd b/lib/namespace.httpd
index dcde8ed7e..74d4faaeb 100644
--- a/lib/namespace.httpd
+++ b/lib/namespace.httpd
@@ -1,10 +1,39 @@
-bind /cfg /usr/web/cfg
-bind /386 /usr/web/386
-bind /amd64 /usr/web/amd64
+# we start with the namespace of the console...
-bind /sys/src/9 /usr/web/sys/src/9
+# man2html expects man pages under /sys/man
+mount #s/boot /n/emelieother other
+bind /n/emelieother/plan9/sys/man /usr/web/sys/man
+#bind /n/emelieother/plan9/sys/doc /usr/web/sys/doc
+#bind /sys/man /usr/web/sys/man
+bind /sys/doc /usr/web/sys/doc
-mount #s/etcd /n/etcd
-bind /n/etcd/www /usr/web/etc
+# just so people will find something under plan9
+bind /usr/web/plan9dist /usr/web/plan9
+
+# users
+bind /usr/mike/www /usr/web/incoming/mike
+
+# netlib
+bind /netlib/pub /usr/web/netlib
+mount -b #s/netlib.depend.pub /usr/web/netlib.depend
+# don't need to bind to /usr/web/math etc. because of /sys/lib/http-rewrite
+
+# who what why when where
+mount /srv/alice /n/alice
+bind -b /n/alice/cm /usr/web/cm
+bind /usr/web/cm/who /usr/web/who
+bind -b /usr/web/cm/physics/who /usr/web/who
+bind -b /usr/web/cm/blrsv/who /usr/web/who
+bind -b /usr/web/cm/ss/who /usr/web/who
+bind -b /usr/web/cm/ms/who /usr/web/who
+bind -b /usr/web/cm/china/who /usr/web/who
+bind -b /usr/web/cm/cs/who /usr/web/who
+bind /usr/web/cm/ms/what/wavelet /usr/web/wavelet
+
+# formerly ftp.research.bell-labs.com
+bind -b /n/alice/usr/ftp /usr/web/dist
+
+# wiki (questions to rsc)
+mount -b #s/wiki.plan9 /usr/web/wiki/plan9
# httpd will bind /usr/web onto /
diff --git a/lib/vgadb b/lib/vgadb
index 5b9e8323a..5d03140c9 100644
--- a/lib/vgadb
+++ b/lib/vgadb
@@ -435,7 +435,6 @@ ctlr
ctlr=geode linear=1
ctlr
- vid=0x8086 did=0x0126 # Intel 2nd Gen Core
vid=0x8086 did=0x0166 # Intel 3rd Gen Core
vid=0x8086 did=0x2a42 # Intel 4 Series Mobile
link=vga
@@ -1696,16 +1695,6 @@ s2231wD=1680x1050
hsync=+ vsync=-
#
-# Lenovo T420 (LCD) LVDS
-#
-#t420=1366x768 # 60Hz
-# clock=69.3
-# shb=1398 ehb=1430 ht=1470
-# vrs=771 vre=776 vt=786
-# hsync=- vsync=-
-# lcd=1
-
-#
# Lenovo X230 (LCD) LVDS
#
x230=1366x768 # 60Hz
diff --git a/rc/bin/9fs b/rc/bin/9fs
index 1a06cab85..578120680 100755
--- a/rc/bin/9fs
+++ b/rc/bin/9fs
@@ -71,12 +71,6 @@ case *.vac
vacfs -m /n/`{basename $1 .vac} `{cat $score}
case wiki
srv -m 'net!plan9.bell-labs.com!wiki' wiki /mnt/wiki
-case ingenic
- ftpfs -qKm /n/ingenic -a $user@$sysname ftp.ingenic.com
-case kernel
- ftpfs -qKm /n/kernel -a $user@sysname ftp.kernel.org
-case qrstuv
- srv -nqmC tcp!fs.9paste.net qrstuv
case *
switch($#*){
case 1
diff --git a/rc/bin/E b/rc/bin/E
deleted file mode 100755
index e91d4f6a2..000000000
--- a/rc/bin/E
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/rc
-# E file - B file, wait until it changes, exit
-rfork e
-if (! ~ $#* 1) {
- echo usage: $0 file >[1=2]
- exit usage
-}
-if (! test -e $1) {
- echo $0: $1: no such file >[1=2]
- exit no-file
-}
-otm = `{mtime $1 | awk '{print $1}'}
-B $1
-while (~ $otm `{mtime $1 | awk '{print $1}'})
- sleep 1
-exit ''
diff --git a/rc/bin/ape/egrep b/rc/bin/ape/egrep
index 4a445c35e..ffd1b2dc3 100755
--- a/rc/bin/ape/egrep
+++ b/rc/bin/ape/egrep
@@ -1,2 +1,2 @@
#!/bin/rc
-exec /$objtype/bin/ape/grep -E $*
+exec /rc/bin/ape/grep $*
diff --git a/rc/bin/ape/fgrep b/rc/bin/ape/fgrep
index 99853d168..ffd1b2dc3 100755
--- a/rc/bin/ape/fgrep
+++ b/rc/bin/ape/fgrep
@@ -1,2 +1,2 @@
#!/bin/rc
-exec /$objtype/bin/ape/grep -F $*
+exec /rc/bin/ape/grep $*
diff --git a/rc/bin/ape/ln b/rc/bin/ape/ln
index d48d0326a..bb5da4a44 100755
--- a/rc/bin/ape/ln
+++ b/rc/bin/ape/ln
@@ -20,4 +20,4 @@ if(~ $force n && test -e $2){
exit 'usage'
}
-exec cp -R $1 $2
+exec cp -gux $1 $2
diff --git a/rc/bin/cpurc b/rc/bin/cpurc
index af3adc10c..d20cf07e1 100755
--- a/rc/bin/cpurc
+++ b/rc/bin/cpurc
@@ -55,22 +55,18 @@ if(test -r /net/ipselftab){
}
}
-if(! test -e /net/dns){
- echo dns...
+if(! test -e /net/dns)
ndb/dns -r
-}
-echo timesync...
if(! ps|grep -s timesync){
if(~ $#ntp 0)
. <{ndb/ipquery sys $sysname ntp | sed 's, +,\n,g'}
if(~ $#ntp 0)
ntp=pool.ntp.org
- #aux/timesync -n $ntp
+ aux/timesync -n $ntp
sleep 2
}
-echo listen...
if(~ $#auth 0){
auth=`{ndb/query sys $sysname auth}
. <{ndb/ipquery sys $sysname auth | sed 's, +,\n,g'}
@@ -93,7 +89,6 @@ case *
if(test -f /dev/apm)
aux/apm
-echo cpustart...
if(test -e /cfg/$sysname/cpustart)
. /cfg/$sysname/cpustart
diff --git a/rc/bin/service/tcp17010 b/rc/bin/service/tcp17010
index f25b7aa23..8747639f1 100755
--- a/rc/bin/service/tcp17010
+++ b/rc/bin/service/tcp17010
@@ -1,4 +1,3 @@
#!/bin/rc
-#netdir=`{echo $3 | sed 's;/[0-9]+$;!*!0;'}
-#exec /bin/cpu -A $netdir -R
-exec /bin/cpu -R
+netdir=`{echo $3 | sed 's;/[0-9]+$;!*!0;'}
+exec /bin/cpu -A $netdir -R
diff --git a/rc/bin/sysupdate b/rc/bin/sysupdate
index de08d28a2..e0420b50f 100755
--- a/rc/bin/sysupdate
+++ b/rc/bin/sysupdate
@@ -1,6 +1,6 @@
#!/bin/rc
rfork en
-
+source=https://code.9front.org/hg/plan9front
cd /
if(! test -d .hg)
bind -ac /dist/plan9front /
diff --git a/sys/include/libsec.h b/sys/include/libsec.h
index d8d4852d5..60f25f944 100644
--- a/sys/include/libsec.h
+++ b/sys/include/libsec.h
@@ -403,16 +403,6 @@ PEMChain*readcertchain(char *filename);
int aes_xts_encrypt(ulong tweak[], ulong ecb[], vlong sectorNumber, uchar *input, uchar *output, ulong len) ;
int aes_xts_decrypt(ulong tweak[], ulong ecb[], vlong sectorNumber, uchar *input, uchar *output, ulong len);
-/*
- * ECC
- */
-
-/* ids for ecnamedcurve */
-enum
-{
- Secp256r1 = 23,
-};
-
typedef struct ECpoint{
int inf;
mpint *x;
@@ -434,15 +424,10 @@ typedef struct ECdomain{
mpint *h;
} ECdomain;
-ECdomain* ecnamedcurve(int);
-void ecfreepoint(ECpoint*);
-void ecfreepriv(ECpriv*);
-void ecfreedomain(ECdomain*);
void ecassign(ECdomain *, ECpoint *old, ECpoint *new);
void ecadd(ECdomain *, ECpoint *a, ECpoint *b, ECpoint *s);
void ecmul(ECdomain *, ECpoint *a, mpint *k, ECpoint *s);
-ECpoint* betoec(ECdomain*, uchar*, int, ECpoint*);
-ECpoint* strtoec(ECdomain *, char *, char **, ECpoint*);
+ECpoint* strtoec(ECdomain *, char *, char **, ECpoint *);
ECpriv* ecgen(ECdomain *, ECpriv*);
int ecverify(ECdomain *, ECpoint *);
int ecpubverify(ECdomain *, ECpub *);
@@ -472,8 +457,5 @@ mpint* dh_new(DHstate *dh, mpint *p, mpint *g);
/* calculate shared key: k = pub ^ x % p */
mpint* dh_finish(DHstate *dh, mpint *pub);
-/* constant-time comparison similar to memcmp(2) */
-int constcmp(uchar *x, uchar *y, int len);
-
/* password-based key derivation function 2 (RFC 2898) */
void pbkdf2_hmac_sha1(uchar *p, ulong plen, uchar *s, ulong slen, ulong rounds, uchar *d, ulong dlen);
diff --git a/sys/lib/python/mercurial/store.py b/sys/lib/python/mercurial/store.py
index 5a4238dd6..eec9dd519 100644
--- a/sys/lib/python/mercurial/store.py
+++ b/sys/lib/python/mercurial/store.py
@@ -246,7 +246,7 @@ class fncache(object):
'''fill the entries from the fncache file'''
self.entries = set()
try:
- fp = self.opener('fncache', mode='r')
+ fp = self.opener('fncache', mode='rb')
except IOError:
# skip nonexistent file
return
diff --git a/sys/lib/python/mercurial/util.py b/sys/lib/python/mercurial/util.py
index 777b345dd..02ff43d7f 100644
--- a/sys/lib/python/mercurial/util.py
+++ b/sys/lib/python/mercurial/util.py
@@ -763,7 +763,7 @@ def mktempcopy(name, emptyok=False, createmode=None):
return temp
try:
try:
- ifp = posixfile(name, "r")
+ ifp = posixfile(name, "rb")
except IOError, inst:
if inst.errno == errno.ENOENT:
return temp
diff --git a/sys/src/9/boot/boot.h b/sys/src/9/boot/boot.h
index db7130922..c72622807 100644
--- a/sys/src/9/boot/boot.h
+++ b/sys/src/9/boot/boot.h
@@ -1,5 +1,5 @@
enum {
- Debug = 1,
+ Debug = 0,
};
extern void fatal(char*);
diff --git a/sys/src/9/boot/bootfs.proto b/sys/src/9/boot/bootfs.proto
index a9e973a73..02ca92979 100644
--- a/sys/src/9/boot/bootfs.proto
+++ b/sys/src/9/boot/bootfs.proto
@@ -30,15 +30,12 @@ $objtype
ndb
dnsgetip
hjfs
- p
- ps
rc
rm
sed
sleep
srv
test
- tlsclient
unmount
nusb
usbd
diff --git a/sys/src/9/boot/bootrc b/sys/src/9/boot/bootrc
index eb451f2a4..208122f72 100755
--- a/sys/src/9/boot/bootrc
+++ b/sys/src/9/boot/bootrc
@@ -66,7 +66,7 @@ fn main{
if(~ $#nobootprompt 0){
echo
showlocaldevs
- ask bootargs ' is (tcp, tcptls, il, local!device)' $"bootargs
+ ask bootargs ' is (tcp, il, local!device)' $"bootargs
}
if not bootargs=$nobootprompt
nobootprompt=()
diff --git a/sys/src/9/boot/net.rc b/sys/src/9/boot/net.rc
index a3e673834..fb399ef97 100755
--- a/sys/src/9/boot/net.rc
+++ b/sys/src/9/boot/net.rc
@@ -48,12 +48,6 @@ fn connecttcp{
fs=$fs(1)
}
-fn connecttcptls{
- while(! ~ $#fs 0 && ! srv -qe 'tlsclient -t <{echo $fsthumb} tcp!'^$fs(1)^!5564 boot)
- fs=$fs(2-);
- fs=$fs(1)
-}
-
fn connectil{
while(! ~ $#fs 0 && ! srv -q il!$fs(1)^!17008 boot)
fs=$fs(2-);
@@ -61,7 +55,5 @@ fn connectil{
}
mtcp=(confignet connecttcp)
-mtcptls=(confignet connecttcptls)
mil=(confignet connectil)
-mt=(mtcp mtcptls mil $mt)
-
+mt=(mtcp mil $mt)
diff --git a/sys/src/9/pc/etheriwl.c b/sys/src/9/pc/etheriwl.c
index ad22fa879..0077061be 100644
--- a/sys/src/9/pc/etheriwl.c
+++ b/sys/src/9/pc/etheriwl.c
@@ -2164,10 +2164,8 @@ iwlrecover(void *arg)
if(ctlr->power)
poweroff(ctlr);
- if((csr32r(ctlr, Gpc) & RfKill) == 0){
- print("#l%d: rfkill on, not resetting\n", edev->ctlrno);
+ if((csr32r(ctlr, Gpc) & RfKill) == 0)
break;
- }
if(reset(ctlr) != nil)
break;
@@ -2449,7 +2447,6 @@ iwlpci(void)
case 0x4238: /* Centrino Ultimate-N 6300 variant 2 */
case 0x08ae: /* Centrino Wireless-N 100 */
case 0x0083: /* Centrino Wireless-N 1000 */
- case 0x0891: /* Centrino Wireless-N 2200 */
case 0x0887: /* Centrino Wireless-N 2230 */
case 0x0888: /* Centrino Wireless-N 2230 */
break;
diff --git a/sys/src/9/port/chan.c b/sys/src/9/port/chan.c
index add9ece90..7e87b9110 100644
--- a/sys/src/9/port/chan.c
+++ b/sys/src/9/port/chan.c
@@ -152,10 +152,8 @@ chandevreset(void)
int i;
todinit(); /* avoid later reentry causing infinite recursion */
- for(i=0; devtab[i] != nil; i++){
- //print("%c: %s: reset\n", devtab[i]->dc, devtab[i]->name);
+ for(i=0; devtab[i] != nil; i++)
devtab[i]->reset();
- }
}
static void closeproc(void*);
diff --git a/sys/src/9/port/devssl.c b/sys/src/9/port/devssl.c
index 829dfe2e3..7e9133e8e 100644
--- a/sys/src/9/port/devssl.c
+++ b/sys/src/9/port/devssl.c
@@ -1439,7 +1439,7 @@ checkdigestb(Dstate *s, Block *bin)
*p = n;
(*s->hf)(msgid, 4, digest, &ss);
- if(constcmp(digest, bin->rp, s->diglen) != 0)
+ if(memcmp(digest, bin->rp, s->diglen) != 0)
error("bad digest");
}
diff --git a/sys/src/9/port/devtls.c b/sys/src/9/port/devtls.c
index ad6750a36..6b728dba5 100644
--- a/sys/src/9/port/devtls.c
+++ b/sys/src/9/port/devtls.c
@@ -825,7 +825,7 @@ if(tr->debug) pdump(unpad_len, p, "decrypted:");
(*tr->packMac)(in->sec, in->sec->mackey, seq, header, p, len, hmac);
if(unpad_len < in->sec->maclen)
rcvError(tr, EBadRecordMac, "short record mac");
- if(constcmp(hmac, p+len, in->sec->maclen) != 0)
+ if(memcmp(hmac, p+len, in->sec->maclen) != 0)
rcvError(tr, EBadRecordMac, "record mac mismatch");
b->rp = p;
b->wp = p+len;
diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c
index 03eb69da4..eadca93ec 100644
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -173,9 +173,6 @@ sched(void)
up->state = Running;
up->mach = MACHP(m->machno);
m->proc = up;
- //print("poolcheck sched %s\n", p->text);
- //#include <pool.h>
- //poolcheck(mainmem);
mmuswitch(up);
gotolabel(&up->sched);
}
diff --git a/sys/src/9/port/syscallfmt.c b/sys/src/9/port/syscallfmt.c
index 26f2fd245..5ae5b31ab 100644
--- a/sys/src/9/port/syscallfmt.c
+++ b/sys/src/9/port/syscallfmt.c
@@ -114,7 +114,7 @@ syscallfmt(ulong syscallno, uintptr pc, va_list list)
a = va_arg(list, char*);
fmtuserstring(&fmt, a, "");
argv = va_arg(list, char**);
- evenaddr((uintptr)argv);
+ evenaddr(PTR2UINT(argv));
for(;;){
validaddr((uintptr)argv, sizeof(char**), 0);
a = *(char **)argv;
diff --git a/sys/src/cmd/auth/lib/okpasswd.c b/sys/src/cmd/auth/lib/okpasswd.c
index 5512e559a..b904db5aa 100644
--- a/sys/src/cmd/auth/lib/okpasswd.c
+++ b/sys/src/cmd/auth/lib/okpasswd.c
@@ -10,6 +10,7 @@ char *trivial[] = {
"change me",
"passwd",
"no passwd",
+ "anonymous",
0
};
diff --git a/sys/src/cmd/aux/consolefs.c b/sys/src/cmd/aux/consolefs.c
index 0d4146bc6..ebc5e1230 100644
--- a/sys/src/cmd/aux/consolefs.c
+++ b/sys/src/cmd/aux/consolefs.c
@@ -5,7 +5,6 @@
#include <bio.h>
#include <ndb.h>
#include <thread.h>
-#include <9p.h>
/*
* This fs presents a 1 level file system. It contains
@@ -13,7 +12,7 @@
*/
typedef struct Console Console;
-typedef struct Aux Aux;
+typedef struct Fid Fid;
typedef struct Request Request;
typedef struct Reqlist Reqlist;
typedef struct Fs Fs;
@@ -29,7 +28,7 @@ enum
Bufsize= 32*1024, /* chars buffered per reader */
Maxcons= 64, /* maximum consoles */
- Nhash= 64, /* Aux hash buckets */
+ Nhash= 64, /* Fid hash buckets */
};
#define TYPE(x) (((ulong)x.path) & 0xf)
@@ -39,7 +38,7 @@ enum
struct Request
{
Request *next;
- Aux *fid;
+ Fid *fid;
Fs *fs;
Fcall f;
uchar buf[1];
@@ -52,11 +51,11 @@ struct Reqlist
Request *last;
};
-struct Aux
+struct Fid
{
Lock;
- Aux *next; /* hash list */
- Aux *cnext; /* list of Aux's on a console */
+ Fid *next; /* hash list */
+ Fid *cnext; /* list of Fid's on a console */
int fid;
int ref;
@@ -94,7 +93,7 @@ struct Console
int cfd;
int sfd;
- Aux *flist; /* open fids to broadcast to */
+ Fid *flist; /* open fids to broadcast to */
};
struct Fs
@@ -103,7 +102,7 @@ struct Fs
int fd; /* to kernel mount point */
int messagesize;
- Aux *hash[Nhash];
+ Fid *hash[Nhash];
Console *cons[Maxcons];
int ncons;
};
@@ -113,30 +112,30 @@ extern Fs* fsmount(char*);
extern void fsreader(void*);
extern void fsrun(void*);
-extern Aux* fsgetfid(Fs*, int);
-extern void fsputfid(Fs*, Aux*);
+extern Fid* fsgetfid(Fs*, int);
+extern void fsputfid(Fs*, Fid*);
extern int fsdirgen(Fs*, Qid, int, Dir*, uchar*, int);
extern void fsreply(Fs*, Request*, char*);
-extern void fskick(Fs*, Aux*);
+extern void fskick(Fs*, Fid*);
extern int fsreopen(Fs*, Console*);
-extern void fsversion(Fs*, Request*, Aux*);
-extern void fsflush(Fs*, Request*, Aux*);
-extern void fsauth(Fs*, Request*, Aux*);
-extern void fsattach(Fs*, Request*, Aux*);
-extern void fswalk(Fs*, Request*, Aux*);
-extern void fsclwalk(Fs*, Request*, Aux*);
-extern void fsopen(Fs*, Request*, Aux*);
-extern void fscreate(Fs*, Request*, Aux*);
-extern void fsread(Fs*, Request*, Aux*);
-extern void fswrite(Fs*, Request*, Aux*);
-extern void fsclunk(Fs*, Request*, Aux*);
-extern void fsremove(Fs*, Request*, Aux*);
-extern void fsstat(Fs*, Request*, Aux*);
-extern void fswstat(Fs*, Request*, Aux*);
-
-
-void (*fcall[])(Fs*, Request*, Aux*) =
+extern void fsversion(Fs*, Request*, Fid*);
+extern void fsflush(Fs*, Request*, Fid*);
+extern void fsauth(Fs*, Request*, Fid*);
+extern void fsattach(Fs*, Request*, Fid*);
+extern void fswalk(Fs*, Request*, Fid*);
+extern void fsclwalk(Fs*, Request*, Fid*);
+extern void fsopen(Fs*, Request*, Fid*);
+extern void fscreate(Fs*, Request*, Fid*);
+extern void fsread(Fs*, Request*, Fid*);
+extern void fswrite(Fs*, Request*, Fid*);
+extern void fsclunk(Fs*, Request*, Fid*);
+extern void fsremove(Fs*, Request*, Fid*);
+extern void fsstat(Fs*, Request*, Fid*);
+extern void fswstat(Fs*, Request*, Fid*);
+
+
+void (*fcall[])(Fs*, Request*, Fid*) =
{
[Tflush] fsflush,
[Tversion] fsversion,
@@ -200,7 +199,7 @@ Ndb *db;
* any request that can get queued for a delayed reply
*/
Request*
-alloccreq(Fs *fs, int bufsize)
+allocreq(Fs *fs, int bufsize)
{
Request *r;
@@ -344,10 +343,10 @@ fsdirgen(Fs *fs, Qid parent, int i, Dir *d, uchar *buf, int nbuf)
Fs*
fsmount(char *mntpt)
{
- int pfd[2];
-
Fs *fs;
- Dir d;
+ int pfd[2], srv;
+ char buf[32];
+ int n;
static void *v[2];
fs = emalloc(sizeof(Fs));
@@ -360,19 +359,21 @@ fsmount(char *mntpt)
v[1] = pfd;
proccreate(fsrun, v, 16*1024);
- if(postfd("consoles", pfd[1]) < 0)
- sysfatal("post: %r");
+ /* Typically mounted before /srv exists */
+ if(access("#s/consoles", AEXIST) < 0){
+ srv = create("#s/consoles", OWRITE, 0666);
+ if(srv < 0)
+ fatal("post: %r");
- nulldir(&d);
- d.mode = 0666;
- dirwstat("/srv/consoles", &d);
+ n = sprint(buf, "%d", pfd[1]);
+ if(write(srv, buf, n) < 0)
+ fatal("write srv: %r");
- if(mntpt){
- if(amount(pfd[1], mntpt, MBEFORE, "") == -1)
- sysfatal("mount %s: %r", mntpt);
- }else
- close(pfd[1]);
+ close(srv);
+ }
+ mount(pfd[1], -1, mntpt, MBEFORE, "");
+ close(pfd[1]);
return fs;
}
@@ -515,7 +516,7 @@ console(Fs* fs, char *name, char *dev, int speed, int cronly, int ondemand)
* the reader may miss data but always sees an in order sequence.
*/
void
-fromconsole(Aux *f, char *p, int n)
+fromconsole(Fid *f, char *p, int n)
{
char *rp, *wp, *ep;
int pass;
@@ -551,10 +552,10 @@ fromconsole(Aux *f, char *p, int n)
* broadcast a list of members to all listeners
*/
void
-bcastmembers(Fs *fs, Console *c, char *msg, Aux *f)
+bcastmembers(Fs *fs, Console *c, char *msg, Fid *f)
{
int n;
- Aux *fl;
+ Fid *fl;
char buf[512];
sprint(buf, "[%s%s", msg, f->user);
@@ -589,7 +590,7 @@ void
fsreader(void *v)
{
int n;
- Aux *fl;
+ Fid *fl;
char buf[1024];
Fs *fs;
Console *c;
@@ -652,6 +653,8 @@ readdb(Fs *fs)
}
}
+int dbmtime;
+
/*
* a request processor (one per Fs)
*/
@@ -660,7 +663,8 @@ fsrun(void *v)
{
int n, t;
Request *r;
- Aux *f;
+ Fid *f;
+ Dir *d;
void **a = v;
Fs* fs;
int *pfd;
@@ -668,12 +672,15 @@ fsrun(void *v)
fs = a[0];
pfd = a[1];
fs->fd = pfd[0];
- readdb(fs);
notify(handler);
for(;;){
- if(ndbchanged(db))
+ d = dirstat(consoledb);
+ if(d != nil && d->mtime != dbmtime){
+ dbmtime = d->mtime;
readdb(fs);
- r = alloccreq(fs, messagesize);
+ }
+ free(d);
+ r = allocreq(fs, messagesize);
while((n = read9pmsg(fs->fd, r->buf, messagesize)) == 0)
;
if(n < 0)
@@ -698,10 +705,10 @@ fsrun(void *v)
}
}
-Aux*
+Fid*
fsgetfid(Fs *fs, int fid)
{
- Aux *f, *nf;
+ Fid *f, *nf;
lock(fs);
for(f = fs->hash[fid%Nhash]; f; f = f->next){
@@ -712,7 +719,7 @@ fsgetfid(Fs *fs, int fid)
}
}
- nf = emalloc(sizeof(Aux));
+ nf = emalloc(sizeof(Fid));
nf->next = fs->hash[fid%Nhash];
fs->hash[fid%Nhash] = nf;
nf->fid = fid;
@@ -724,9 +731,9 @@ fsgetfid(Fs *fs, int fid)
}
void
-fsputfid(Fs *fs, Aux *f)
+fsputfid(Fs *fs, Fid *f)
{
- Aux **l, *nf;
+ Fid **l, *nf;
lock(fs);
if(--f->ref > 0){
@@ -744,13 +751,13 @@ fsputfid(Fs *fs, Aux *f)
}
void
-fsauth(Fs *fs, Request *r, Aux*)
+fsauth(Fs *fs, Request *r, Fid*)
{
fsreply(fs, r, "consolefs: authentication not required");
}
void
-fsversion(Fs *fs, Request *r, Aux*)
+fsversion(Fs *fs, Request *r, Fid*)
{
if(r->f.msize < 256){
@@ -771,7 +778,7 @@ fsversion(Fs *fs, Request *r, Aux*)
}
void
-fsflush(Fs *fs, Request *r, Aux *f)
+fsflush(Fs *fs, Request *r, Fid *f)
{
Request *or;
@@ -779,15 +786,12 @@ fsflush(Fs *fs, Request *r, Aux *f)
if(or != nil){
fsputfid(fs, or->fid);
free(or);
- fsreply(fs, r, nil);
- } else {
- fsputfid(fs, f);
- free(r);
}
+ fsreply(fs, r, nil);
}
void
-fsattach(Fs *fs, Request *r, Aux *f)
+fsattach(Fs *fs, Request *r, Fid *f)
{
f->qid.type = QTDIR;
f->qid.path = QID(0, Ttopdir);
@@ -809,13 +813,13 @@ fsattach(Fs *fs, Request *r, Aux *f)
}
void
-fswalk(Fs *fs, Request *r, Aux *f)
+fswalk(Fs *fs, Request *r, Fid *f)
{
char *name;
Dir d;
int i, n, nqid, nwname;
Qid qid, wqid[MAXWELEM];
- Aux *nf;
+ Fid *nf;
char *err;
if(f->attached == 0){
@@ -928,7 +932,7 @@ int m2p[] ={
void
bcastmsg(Fs *fs, Console *c, char *msg, int n)
{
- Aux *fl;
+ Fid *fl;
for(fl = c->flist; fl; fl = fl->cnext){
fromconsole(fl, msg, n);
@@ -937,7 +941,7 @@ bcastmsg(Fs *fs, Console *c, char *msg, int n)
}
void
-fsopen(Fs *fs, Request *r, Aux *f)
+fsopen(Fs *fs, Request *r, Fid *f)
{
int mode;
Console *c;
@@ -1005,13 +1009,13 @@ fsopen(Fs *fs, Request *r, Aux *f)
}
void
-fscreate(Fs *fs, Request *r, Aux*)
+fscreate(Fs *fs, Request *r, Fid*)
{
fsreply(fs, r, Eperm);
}
void
-fsread(Fs *fs, Request *r, Aux *f)
+fsread(Fs *fs, Request *r, Fid *f)
{
uchar *p, *e;
int i, m, off;
@@ -1074,7 +1078,7 @@ fsread(Fs *fs, Request *r, Aux *f)
}
void
-fswrite(Fs *fs, Request *r, Aux *f)
+fswrite(Fs *fs, Request *r, Fid *f)
{
int i, eol = 0;
@@ -1137,9 +1141,9 @@ fswrite(Fs *fs, Request *r, Aux *f)
}
void
-fsclunk(Fs *fs, Request *r, Aux *f)
+fsclunk(Fs *fs, Request *r, Fid *f)
{
- Aux **l, *fl;
+ Fid **l, *fl;
Request *nr;
if(f->open && TYPE(f->qid) == Qdata){
@@ -1166,13 +1170,13 @@ fsclunk(Fs *fs, Request *r, Aux *f)
}
void
-fsremove(Fs *fs, Request *r, Aux*)
+fsremove(Fs *fs, Request *r, Fid*)
{
fsreply(fs, r, Eperm);
}
void
-fsstat(Fs *fs, Request *r, Aux *f)
+fsstat(Fs *fs, Request *r, Fid *f)
{
int i, n;
Qid q;
@@ -1194,7 +1198,7 @@ fsstat(Fs *fs, Request *r, Aux *f)
}
void
-fswstat(Fs *fs, Request *r, Aux*)
+fswstat(Fs *fs, Request *r, Fid*)
{
fsreply(fs, r, Eperm);
}
@@ -1222,7 +1226,7 @@ fsreply(Fs *fs, Request *r, char *err)
* called whenever input or a read request has been received
*/
void
-fskick(Fs *fs, Aux *f)
+fskick(Fs *fs, Fid *f)
{
Request *r;
char *p, *rp, *wp, *ep;
diff --git a/sys/src/cmd/cpu.c b/sys/src/cmd/cpu.c
index edcf8bd50..1994aaf28 100644
--- a/sys/src/cmd/cpu.c
+++ b/sys/src/cmd/cpu.c
@@ -224,7 +224,7 @@ main(int argc, char **argv)
if(system == nil) {
p = getenv("cpu");
if(p == 0)
- p = "$cpu";
+ fatal("set $cpu");
system = p;
}
diff --git a/sys/src/cmd/gs/amd64.h b/sys/src/cmd/gs/amd64.h
index 80ac5906c..ce16fed64 100644
--- a/sys/src/cmd/gs/amd64.h
+++ b/sys/src/cmd/gs/amd64.h
@@ -33,13 +33,13 @@
/* ---------------- Cache sizes ---------------- */
-#define ARCH_CACHE1_SIZE 2097152
+#define ARCH_CACHE1_SIZE 131072
#define ARCH_CACHE2_SIZE 4194304
/* ---------------- Miscellaneous ---------------- */
#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 1
+#define ARCH_PTRS_ARE_SIGNED 0
#define ARCH_FLOATS_ARE_IEEE 1
#define ARCH_ARITH_RSHIFT 2
#define ARCH_CAN_SHIFT_FULL_LONG 0
diff --git a/sys/src/cmd/ip/httpd/sendfd.c b/sys/src/cmd/ip/httpd/sendfd.c
index c1850ea75..b3ef1c13b 100644
--- a/sys/src/cmd/ip/httpd/sendfd.c
+++ b/sys/src/cmd/ip/httpd/sendfd.c
@@ -240,10 +240,10 @@ static void
printtype(Hio *hout, HContent *type, HContent *enc)
{
hprint(hout, "Content-Type: %s/%s", type->generic, type->specific);
-
+/*
if(cistrcmp(type->generic, "text") == 0)
hprint(hout, ";charset=utf-8");
-
+*/
hprint(hout, "\r\n");
if(enc != nil)
hprint(hout, "Content-Encoding: %s\r\n", enc->generic);
@@ -351,8 +351,6 @@ checkreq(HConnect *c, HContent *type, HContent *enc, long mtime, char *etag)
if(c->req.vermaj >= 1 && c->req.vermin >= 1 && !hcheckcontent(enc, c->head.okencode, "Content-Encoding", 0))
return notaccept(c, type, enc, "Content-Encoding");
- return 1;
-
/*
* can use weak match only with get or head;
* this always uses strong matches
diff --git a/sys/src/cmd/ip/tftpd.c b/sys/src/cmd/ip/tftpd.c
index 4b4725f1f..e0569b959 100644
--- a/sys/src/cmd/ip/tftpd.c
+++ b/sys/src/cmd/ip/tftpd.c
@@ -54,7 +54,6 @@ enum
*/
Bandtblksz = Bandtmtu - 40 - 8,
Bcavium = 1432, /* cavium's u-boot demands this size */
- Bci20 = 1468, /* ci20 u-boot */
};
typedef struct Opt Opt;
@@ -330,7 +329,7 @@ options(int fd, char *buf, int bufsz, char *file, ushort oper, char *p, int dlen
syslog(dbg, flog, "tftpd %d %s tsize is %,lld",
pid, file, size);
} else if (oper == Tftp_READ && cistrcmp(p, "blksize") == 0 &&
- blksize > Bandtblksz && blksize != Bcavium && blksize != Bci20) {
+ blksize > Bandtblksz && blksize != Bcavium) {
*op->valp = blksize = Bandtblksz;
olen = emitn(blksize, bp, ep);
syslog(dbg, flog, "tftpd %d overriding blksize to %d",
diff --git a/sys/src/cmd/mk/run.c b/sys/src/cmd/mk/run.c
index ecee9819a..c01b519fd 100644
--- a/sys/src/cmd/mk/run.c
+++ b/sys/src/cmd/mk/run.c
@@ -163,7 +163,7 @@ again: /* rogue processes */
uarg = 1;
} else {
jobs = 0;
- sysfatal("%s", buf);
+ Exit();
}
}
for(w = j->t; w; w = w->next){
diff --git a/sys/src/libc/fmt/snprint.c b/sys/src/libc/fmt/snprint.c
index c30bfd271..8a4681392 100644
--- a/sys/src/libc/fmt/snprint.c
+++ b/sys/src/libc/fmt/snprint.c
@@ -12,3 +12,4 @@ snprint(char *buf, int len, char *fmt, ...)
va_end(args);
return n;
}
+
diff --git a/sys/src/libcontrol/control.c b/sys/src/libcontrol/control.c
index a9335e8f5..f83cea089 100644
--- a/sys/src/libcontrol/control.c
+++ b/sys/src/libcontrol/control.c
@@ -164,7 +164,7 @@ controlsetthread(void *v)
Rune buf[2][20], *rp;
cs = v;
- threadsetname("controlsetthread %#p", cs);
+ threadsetname("controlsetthread 0x%p", cs);
alts[AKey].c = cs->kbdc;
alts[AKey].v = &rp;
@@ -324,7 +324,6 @@ ctlerror(char *fmt, ...)
vfprint(2, fmt, arg);
va_end(arg);
write(2, "\n", 1);
- abort();
threadexitsall(buf);
}
@@ -377,8 +376,6 @@ ctlstrdup(char *s)
t = strdup(s);
if(t == nil)
ctlerror("control strdup(%q) failed: %r", s);
-
- setmalloctag(t, getcallerpc(&s));
return t;
}
diff --git a/sys/src/libdraw/newwindow.c b/sys/src/libdraw/newwindow.c
index dff608e0f..7b385a322 100644
--- a/sys/src/libdraw/newwindow.c
+++ b/sys/src/libdraw/newwindow.c
@@ -29,3 +29,4 @@ newwindow(char *str)
return mount(fd, -1, "/dev", MBEFORE, buf);
return bind("/mnt/wsys", "/dev", MBEFORE);
}
+
diff --git a/sys/src/libmach/vdb.c b/sys/src/libmach/vdb.c
index 1445ff273..6001813c1 100644
--- a/sys/src/libmach/vdb.c
+++ b/sys/src/libmach/vdb.c
@@ -836,10 +836,7 @@ format(char *mnemonic, Instr *i, char *f)
break;
case 'm':
- if(i->function != 0)
- bprint(i, "M(%s),%d", cop0regs[i->rd], i->function);
- else
- bprint(i, "M(%s)", cop0regs[i->rd]);
+ bprint(i, "M(%s)", cop0regs[i->rd]);
break;
case 'f':
diff --git a/sys/src/libsec/port/const.c b/sys/src/libsec/port/const.c
deleted file mode 100644
index 0cf400178..000000000
--- a/sys/src/libsec/port/const.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <u.h>
-
-/*
- * returns 0 if the the len bytes in x are equal to len bytes in y,
- * otherwise returns -1.
- */
-int
-constcmp(uchar *x, uchar *y, int len)
-{
- uint z;
- int i;
-
- for(z = 0, i = 0; i < len; i++) {
- z |= x[i] ^ y[i];
- }
-
- return (1 & ((z - 1) >> 8)) - 1;
-}
diff --git a/sys/src/libsec/port/ecc.c b/sys/src/libsec/port/ecc.c
index 09dd92858..261eebdd1 100644
--- a/sys/src/libsec/port/ecc.c
+++ b/sys/src/libsec/port/ecc.c
@@ -3,76 +3,6 @@
#include <libsec.h>
#include <ctype.h>
-ECdomain *
-ecnamedcurve(int id)
-{
- ECdomain *dom;
- dom = malloc(sizeof(ECdomain));
- if(dom == nil)
- return nil;
-
- switch(id) {
- default:
- free(dom);
- return nil;
- case Secp256r1:
- dom->p = strtomp("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", nil, 16, nil);
- dom->a = strtomp("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC", nil, 16, nil);
- dom->b = strtomp("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", nil, 16, nil);
- dom->G = strtoec(dom, "036B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", nil, nil);
- dom->n = strtomp("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", nil, 16, nil);
- dom->h = uitomp(1, nil);
- break;
- }
-
- if(dom->p == nil || dom->a == nil || dom->b == nil || dom->G == nil || dom->n == nil || dom->h == nil) {
- ecfreedomain(dom);
- return nil;
- }
-
- return dom;
-}
-
-void
-ecfreepoint(ECpoint *pt)
-{
- if(pt != nil) {
- mpfree(pt->x);
- mpfree(pt->y);
- }
-
- free(pt);
-}
-
-void
-ecfreepriv(ECpriv *priv)
-{
- if(priv != nil) {
- mpfree(priv->x);
- mpfree(priv->y);
- mpfree(priv->d);
- }
-
- free(priv);
-}
-
-void
-ecfreedomain(ECdomain *dom)
-{
- if(dom != nil) {
- mpfree(dom->p);
- mpfree(dom->a);
- mpfree(dom->b);
- if(dom->G != nil) {
- ecfreepoint(dom->G);
- }
- mpfree(dom->n);
- mpfree(dom->h);
- }
-
- free(dom);
-}
-
void
ecassign(ECdomain *, ECpoint *a, ECpoint *b)
{
@@ -399,54 +329,6 @@ mpsqrt(mpint *n, mpint *p, mpint *r)
return 1;
}
-// converts the bytes in buf to an ECpoint x y pair.
-// the domain is used to determine the number of bytes in x and y in the buffer.
-ECpoint*
-betoec(ECdomain *dom, uchar *buf, int blen, ECpoint *ret)
-{
- int allocd, bytelen;
-
- allocd = 0;
- bytelen = (mpsignif(dom->p)+7) >> 3;
-
- // sanity check arguments
- if(dom == nil || buf == nil)
- return nil;
-
- // check if input is too short for two mpints
- if(blen != 1+2*bytelen)
- return nil;
-
- // check that point is in uncompressed format
- if(buf[0] != 4)
- return nil;
-
- if(ret == nil) {
- // allocate return pointer and mpints
- allocd = 1;
- ret = mallocz(sizeof(*ret), 1);
- if(ret == nil)
- return nil;
- ret->x = mpnew(0);
- ret->y = mpnew(0);
- }
-
- // uncompressed form
- if(betomp(buf+1, bytelen, ret->x) == nil)
- goto err;
- if(betomp(buf+1+bytelen, bytelen, ret->y) == nil)
- goto err;
- if(!ecverify(dom, ret))
- goto err;
- return ret;
-
-err:
- if(allocd){
- ecfreepoint(ret);
- }
- return nil;
-}
-
ECpoint*
strtoec(ECdomain *dom, char *s, char **rptr, ECpoint *ret)
{
@@ -500,8 +382,11 @@ strtoec(ECdomain *dom, char *s, char **rptr, ECpoint *ret)
err:
if(rptr)
*rptr = s;
- if(allocd)
- ecfreepoint(ret);
+ if(allocd){
+ mpfree(ret->x);
+ mpfree(ret->y);
+ free(ret);
+ }
return nil;
}
diff --git a/sys/src/libsec/port/mkfile b/sys/src/libsec/port/mkfile
index 91973cb26..60aebe629 100644
--- a/sys/src/libsec/port/mkfile
+++ b/sys/src/libsec/port/mkfile
@@ -22,7 +22,6 @@ CFILES = des.c desmodes.c desECB.c desCBC.c des3ECB.c des3CBC.c\
ripemd.c\
dh.c\
pbkdf2.c\
- const.c\
ALLOFILES=${CFILES:%.c=%.$O}
diff --git a/sys/src/libsec/port/thumb.c b/sys/src/libsec/port/thumb.c
index 8a2e53e97..21c92fe88 100644
--- a/sys/src/libsec/port/thumb.c
+++ b/sys/src/libsec/port/thumb.c
@@ -38,7 +38,7 @@ okThumbprint(uchar *sum, Thumbprint *table)
return 0;
hd = tablehead(sum, table);
for(p = hd->next; p; p = p->next){
- if(constcmp(sum, p->sha1, SHA1dlen) == 0)
+ if(memcmp(sum, p->sha1, SHA1dlen) == 0)
return 1;
if(p == hd)
break;
diff --git a/sys/src/libsec/port/tlshand.c b/sys/src/libsec/port/tlshand.c
index 8151c60c4..48c281068 100644
--- a/sys/src/libsec/port/tlshand.c
+++ b/sys/src/libsec/port/tlshand.c
@@ -854,57 +854,99 @@ ectobytes(int type, ECpoint *p)
static Bytes*
tlsSecECDHEc(TlsSec *sec, uchar *srandom, int vers, int curve, Bytes *Ys)
{
+ Namedcurve *nc, *enc;
Bytes *epm;
- ECdomain *dom;
- ECpoint K, *Y;
- ECpriv *Q;
-
- epm = nil;
- Y = nil;
- Q = nil;
+ ECdomain dom;
+ ECpoint G, K, Y;
+ ECpriv Q;
if(Ys == nil)
return nil;
+ enc = &namedcurves[nelem(namedcurves)];
+ for(nc = namedcurves; nc != enc; nc++)
+ if(nc->tlsid == curve)
+ break;
+
+ if(nc == enc)
+ return nil;
+
memmove(sec->srandom, srandom, RandomSize);
if(setVers(sec, vers) < 0)
return nil;
+
+ epm = nil;
- dom = ecnamedcurve(curve);
- if(dom == nil)
- return nil;
+ memset(&dom, 0, sizeof(dom));
+ dom.p = strtomp(nc->p, nil, 16, nil);
+ dom.a = strtomp(nc->a, nil, 16, nil);
+ dom.b = strtomp(nc->b, nil, 16, nil);
+ dom.n = strtomp(nc->n, nil, 16, nil);
+ dom.h = strtomp(nc->h, nil, 16, nil);
+ memset(&G, 0, sizeof(G));
+ G.x = mpnew(0);
+ G.y = mpnew(0);
+
+ memset(&Q, 0, sizeof(Q));
+ Q.x = mpnew(0);
+ Q.y = mpnew(0);
+ Q.d = mpnew(0);
memset(&K, 0, sizeof(K));
K.x = mpnew(0);
K.y = mpnew(0);
+ memset(&Y, 0, sizeof(Y));
+ Y.x = mpnew(0);
+ Y.y = mpnew(0);
+
+ if(dom.p == nil || dom.a == nil || dom.b == nil || dom.n == nil || dom.h == nil)
+ goto Out;
+ if(Q.x == nil || Q.y == nil || Q.d == nil)
+ goto Out;
+ if(G.x == nil || G.y == nil)
+ goto Out;
if(K.x == nil || K.y == nil)
goto Out;
+ if(Y.x == nil || Y.y == nil)
+ goto Out;
- Y = betoec(dom, Ys->data, Ys->len, nil);
- if(Y == nil)
+ dom.G = strtoec(&dom, nc->G, nil, &G);
+ if(dom.G == nil)
goto Out;
- Q = ecgen(dom, nil);
- if(Q == nil)
+ if(bytestoec(&dom, Ys, &Y) == nil)
goto Out;
- ecmul(dom, Y, Q->d, &K);
+ if(ecgen(&dom, &Q) == nil)
+ goto Out;
+
+ ecmul(&dom, &Y, Q.d, &K);
setMasterSecret(sec, mptobytes(K.x));
/* 0x04 = uncompressed public key */
- epm = ectobytes(0x04, Q);
+ epm = ectobytes(0x04, &Q);
Out:
- ecfreepriv(Q);
-
- ecfreepoint(Y);
+ mpfree(Y.x);
+ mpfree(Y.y);
mpfree(K.x);
mpfree(K.y);
- ecfreedomain(dom);
+ mpfree(Q.x);
+ mpfree(Q.y);
+ mpfree(Q.d);
+
+ mpfree(G.x);
+ mpfree(G.y);
+
+ mpfree(dom.p);
+ mpfree(dom.a);
+ mpfree(dom.b);
+ mpfree(dom.n);
+ mpfree(dom.h);
return epm;
}
@@ -1915,7 +1957,7 @@ setVersion(TlsConnection *c, int version)
static int
finishedMatch(TlsConnection *c, Finished *f)
{
- return constcmp(f->verify, c->finished.verify, f->n) == 0;
+ return memcmp(f->verify, c->finished.verify, f->n) == 0;
}
// free memory associated with TlsConnection struct
diff --git a/sys/src/libsec/port/x509.c b/sys/src/libsec/port/x509.c
index a6dc9e5d7..4751524c5 100644
--- a/sys/src/libsec/port/x509.c
+++ b/sys/src/libsec/port/x509.c
@@ -2212,7 +2212,7 @@ verify_signature(Bytes* signature, RSApub *pk, uchar *edigest, int edigestlen, E
err = "bad digest length";
goto end;
}
- if(constcmp(digest->data, edigest, edigestlen) != 0)
+ if(memcmp(digest->data, edigest, edigestlen) != 0)
err = "digests did not match";
end:
diff --git a/sys/src/libthread/id.c b/sys/src/libthread/id.c
index f8946c214..ebb563307 100644
--- a/sys/src/libthread/id.c
+++ b/sys/src/libthread/id.c
@@ -71,7 +71,7 @@ threadsetname(char *fmt, ...)
va_start(arg, fmt);
t->cmdname = vsmprint(fmt, arg);
va_end(arg);
- if(t->cmdname){
+ if(t->cmdname && p->nthreads == 1){
snprint(buf, sizeof buf, "#p/%lud/args", _tos->pid); //getpid());
if((fd = open(buf, OWRITE)) >= 0){
write(fd, t->cmdname, strlen(t->cmdname)+1);
diff --git a/sys/src/libthread/main.c b/sys/src/libthread/main.c
index f9a794d1b..708b65ed1 100644
--- a/sys/src/libthread/main.c
+++ b/sys/src/libthread/main.c
@@ -31,7 +31,7 @@ main(int argc, char **argv)
if(setjmp(_mainjmp))
_schedinit(p);
- //_threaddebuglevel = (DBGSCHED|DBGCHAN|DBGREND);
+//_threaddebuglevel = (DBGSCHED|DBGCHAN|DBGREND)^~0;
_systhreadinit();
_qlockinit(_threadrendezvous);
_sysfatal = _threadsysfatal;