ref: f62ce2d74a22aa44f665f3769cf3d4e6d183aa33
parent: a4a975e8ac706cc2d9ef954c250b7ae4dd2e0e08
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Oct 17 19:35:37 EDT 2021
libsec: fix operator precedence bugs (thanks kemal)
--- a/sys/src/libsec/port/tlshand.c
+++ b/sys/src/libsec/port/tlshand.c
@@ -660,7 +660,7 @@
goto Short;
switch(get16(p-4)){
case Extec:
- if(n < 4 || n & 1 || get16(p) != (n -= 2))
+ if(n < 4 || n % 2 || get16(p) != (n -= 2))
goto Short;
p += 2;
for(i = 0; i < nelem(namedcurves) && c->sec->nc == nil; i++)
@@ -1574,7 +1574,7 @@
nn = get16(p);
p += 2, n -= 2;
- if((nn & 1) || n < nn || nn < 2)
+ if(nn % 2 || n < nn || nn < 2)
goto Short;
m->u.clientHello.ciphers = newints(nn >> 1);
for(i = 0; i < nn; i += 2)
@@ -1663,7 +1663,7 @@
goto Short;
nn = get16(p);
p += 2, n -= 2;
- if(nn & 1)
+ if(nn % 2)
goto Short;
m->u.certificateRequest.sigalgs = newints(nn>>1);
for(i = 0; i < nn; i += 2)
--
⑨