mirror of https://github.com/omar-polo/gmid.git
avoid arithmetic on void pointers (GNU extension)
not really sold on this one, I don't see what other interpretation could be given, but it's not standard so...
This commit is contained in:
parent
d6d9f9b2a9
commit
10cc819309
23
crypto.c
23
crypto.c
|
@ -120,11 +120,12 @@ crypto_dispatch_server(int fd, struct privsep_proc *p, struct imsg *imsg)
|
||||||
struct imsg_crypto_res res;
|
struct imsg_crypto_res res;
|
||||||
struct iovec iov[2];
|
struct iovec iov[2];
|
||||||
const void *from;
|
const void *from;
|
||||||
unsigned char *to;
|
unsigned char *data, *to;
|
||||||
size_t datalen;
|
size_t datalen;
|
||||||
int n, ret;
|
int n, ret;
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
|
|
||||||
|
data = imsg->data;
|
||||||
datalen = IMSG_DATA_SIZE(imsg);
|
datalen = IMSG_DATA_SIZE(imsg);
|
||||||
|
|
||||||
switch (imsg->hdr.type) {
|
switch (imsg->hdr.type) {
|
||||||
|
@ -132,10 +133,10 @@ crypto_dispatch_server(int fd, struct privsep_proc *p, struct imsg *imsg)
|
||||||
case IMSG_CRYPTO_RSA_PRIVDEC:
|
case IMSG_CRYPTO_RSA_PRIVDEC:
|
||||||
if (datalen < sizeof(req))
|
if (datalen < sizeof(req))
|
||||||
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
||||||
memcpy(&req, imsg->data, sizeof(req));
|
memcpy(&req, data, sizeof(req));
|
||||||
if (datalen != sizeof(req) + req.flen)
|
if (datalen != sizeof(req) + req.flen)
|
||||||
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
||||||
from = imsg->data + sizeof(req);
|
from = data + sizeof(req);
|
||||||
|
|
||||||
if ((pkey = get_pkey(req.hash)) == NULL ||
|
if ((pkey = get_pkey(req.hash)) == NULL ||
|
||||||
(rsa = EVP_PKEY_get1_RSA(pkey)) == NULL)
|
(rsa = EVP_PKEY_get1_RSA(pkey)) == NULL)
|
||||||
|
@ -187,10 +188,10 @@ crypto_dispatch_server(int fd, struct privsep_proc *p, struct imsg *imsg)
|
||||||
case IMSG_CRYPTO_ECDSA_SIGN:
|
case IMSG_CRYPTO_ECDSA_SIGN:
|
||||||
if (datalen < sizeof(req))
|
if (datalen < sizeof(req))
|
||||||
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
||||||
memcpy(&req, imsg->data, sizeof(req));
|
memcpy(&req, data, sizeof(req));
|
||||||
if (datalen != sizeof(req) + req.flen)
|
if (datalen != sizeof(req) + req.flen)
|
||||||
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
fatalx("size mismatch for imsg %d", imsg->hdr.type);
|
||||||
from = imsg->data + sizeof(req);
|
from = data + sizeof(req);
|
||||||
|
|
||||||
if ((pkey = get_pkey(req.hash)) == NULL ||
|
if ((pkey = get_pkey(req.hash)) == NULL ||
|
||||||
(ecdsa = EVP_PKEY_get1_EC_KEY(pkey)) == NULL)
|
(ecdsa = EVP_PKEY_get1_EC_KEY(pkey)) == NULL)
|
||||||
|
@ -261,6 +262,7 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
|
||||||
int n, done = 0;
|
int n, done = 0;
|
||||||
const void *toptr;
|
const void *toptr;
|
||||||
char *hash;
|
char *hash;
|
||||||
|
unsigned char *data;
|
||||||
size_t datalen;
|
size_t datalen;
|
||||||
|
|
||||||
if ((hash = RSA_get_ex_data(rsa, 0)) == NULL)
|
if ((hash = RSA_get_ex_data(rsa, 0)) == NULL)
|
||||||
|
@ -331,16 +333,17 @@ rsae_send_imsg(int flen, const unsigned char *from, unsigned char *to,
|
||||||
"crypto", imsg.hdr.pid);
|
"crypto", imsg.hdr.pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data = imsg.data;
|
||||||
datalen = IMSG_DATA_SIZE(&imsg);
|
datalen = IMSG_DATA_SIZE(&imsg);
|
||||||
if (datalen < sizeof(res))
|
if (datalen < sizeof(res))
|
||||||
fatalx("size mismatch for imsg %d",
|
fatalx("size mismatch for imsg %d",
|
||||||
imsg.hdr.type);
|
imsg.hdr.type);
|
||||||
memcpy(&res, imsg.data, sizeof(res));
|
memcpy(&res, data, sizeof(res));
|
||||||
if (datalen != sizeof(res) + res.ret)
|
if (datalen != sizeof(res) + res.ret)
|
||||||
fatalx("size mismatch for imsg %d",
|
fatalx("size mismatch for imsg %d",
|
||||||
imsg.hdr.type);
|
imsg.hdr.type);
|
||||||
ret = res.ret;
|
ret = res.ret;
|
||||||
toptr = imsg.data + sizeof(res);
|
toptr = data + sizeof(res);
|
||||||
|
|
||||||
if (res.id != reqid)
|
if (res.id != reqid)
|
||||||
fatalx("invalid id; got %llu, want %llu",
|
fatalx("invalid id; got %llu, want %llu",
|
||||||
|
@ -464,6 +467,7 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
|
||||||
int n, done = 0;
|
int n, done = 0;
|
||||||
const void *toptr;
|
const void *toptr;
|
||||||
char *hash;
|
char *hash;
|
||||||
|
unsigned char *data;
|
||||||
size_t datalen;
|
size_t datalen;
|
||||||
|
|
||||||
if ((hash = EC_KEY_get_ex_data(eckey, 0)) == NULL)
|
if ((hash = EC_KEY_get_ex_data(eckey, 0)) == NULL)
|
||||||
|
@ -527,15 +531,16 @@ ecdsae_send_enc_imsg(const unsigned char *dgst, int dgst_len,
|
||||||
imsg.hdr.type, imsg.hdr.peerid,
|
imsg.hdr.type, imsg.hdr.peerid,
|
||||||
"crypto", imsg.hdr.pid);
|
"crypto", imsg.hdr.pid);
|
||||||
|
|
||||||
|
data = imsg.data;
|
||||||
datalen = IMSG_DATA_SIZE(&imsg);
|
datalen = IMSG_DATA_SIZE(&imsg);
|
||||||
if (datalen < sizeof(res))
|
if (datalen < sizeof(res))
|
||||||
fatalx("size mismatch for imsg %d",
|
fatalx("size mismatch for imsg %d",
|
||||||
imsg.hdr.type);
|
imsg.hdr.type);
|
||||||
memcpy(&res, imsg.data, sizeof(res));
|
memcpy(&res, data, sizeof(res));
|
||||||
if (datalen != sizeof(res) + res.ret)
|
if (datalen != sizeof(res) + res.ret)
|
||||||
fatalx("size mismatch for imsg %d",
|
fatalx("size mismatch for imsg %d",
|
||||||
imsg.hdr.type);
|
imsg.hdr.type);
|
||||||
toptr = imsg.data + sizeof(res);
|
toptr = data + sizeof(res);
|
||||||
|
|
||||||
if (res.id != reqid)
|
if (res.id != reqid)
|
||||||
fatalx("invalid response id");
|
fatalx("invalid response id");
|
||||||
|
|
6
gg.c
6
gg.c
|
@ -157,7 +157,7 @@ doreq(struct tls *ctx, const char *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
dorep(struct tls *ctx, void *buf, size_t len)
|
dorep(struct tls *ctx, uint8_t *buf, size_t len)
|
||||||
{
|
{
|
||||||
ssize_t w;
|
ssize_t w;
|
||||||
size_t tot = 0;
|
size_t tot = 0;
|
||||||
|
@ -189,7 +189,7 @@ get(const char *r)
|
||||||
int foundhdr = 0, code = -1, od;
|
int foundhdr = 0, code = -1, od;
|
||||||
char iribuf[GEMINI_URL_LEN];
|
char iribuf[GEMINI_URL_LEN];
|
||||||
char req[GEMINI_URL_LEN];
|
char req[GEMINI_URL_LEN];
|
||||||
char buf[2048];
|
uint8_t buf[2048];
|
||||||
const char *parse_err, *host, *port;
|
const char *parse_err, *host, *port;
|
||||||
|
|
||||||
if (strlcpy(iribuf, r, sizeof(iribuf)) >= sizeof(iribuf))
|
if (strlcpy(iribuf, r, sizeof(iribuf)) >= sizeof(iribuf))
|
||||||
|
@ -234,7 +234,7 @@ get(const char *r)
|
||||||
doreq(ctx, req);
|
doreq(ctx, req);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
char *t;
|
uint8_t *t;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
len = dorep(ctx, buf, sizeof(buf));
|
len = dorep(ctx, buf, sizeof(buf));
|
||||||
|
|
Loading…
Reference in New Issue