ref: 34f5680aa2fb1f2c903d1b32281169d0c915ef49
parent: 0734b1ca851f56044cb357e9cb30ce6f4efd5bfa
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Feb 6 19:31:30 EST 2016
libsec: fix missing error case unlock() in tlshands initCiphers()
--- a/sys/src/libsec/port/tlshand.c
+++ b/sys/src/libsec/port/tlshand.c
@@ -1133,7 +1133,7 @@
goto Err;
}
if(setVersion(c, m.u.serverHello.version) < 0) {- tlsError(c, EIllegalParameter, "incompatible version %r");
+ tlsError(c, EIllegalParameter, "incompatible version: %r");
goto Err;
}
memmove(c->srandom, m.u.serverHello.random, RandomSize);
@@ -2321,13 +2321,13 @@
j = open("#a/tls/encalgs", OREAD); if(j < 0){ werrstr("can't open #a/tls/encalgs: %r");- return 0;
+ goto out;
}
n = read(j, s, MaxAlgF-1);
close(j);
if(n <= 0){ werrstr("nothing in #a/tls/encalgs: %r");- return 0;
+ goto out;
}
s[n] = 0;
n = getfields(s, flds, MaxAlgs, 1, " \t\r\n");
@@ -2345,13 +2345,13 @@
j = open("#a/tls/hashalgs", OREAD); if(j < 0){ werrstr("can't open #a/tls/hashalgs: %r");- return 0;
+ goto out;
}
n = read(j, s, MaxAlgF-1);
close(j);
if(n <= 0){ werrstr("nothing in #a/tls/hashalgs: %r");- return 0;
+ goto out;
}
s[n] = 0;
n = getfields(s, flds, MaxAlgs, 1, " \t\r\n");
@@ -2367,6 +2367,7 @@
if(cipherAlgs[i].ok)
nciphers++;
}
+out:
unlock(&ciphLock);
return nciphers;
}
--
⑨