summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2018-02-15 21:27:24 +0000
committerLuiz Souza <luiz@netgate.com>2018-05-09 10:28:58 -0300
commit293707af843ce1b4208eed3b8427b72356ea06f0 (patch)
tree12e6ddcad414f565e12dc1ce2208b9aee97a9be2 /tools
parent61033f55dc6b6b9c295e0ade753c1d0b142ddd1b (diff)
downloadFreeBSD-src-293707af843ce1b4208eed3b8427b72356ea06f0.zip
FreeBSD-src-293707af843ce1b4208eed3b8427b72356ea06f0.tar.gz
MFC 318090,319475: Use const with some read-only buffers in opencrypto APIs.
318090: Use const with some read-only buffers in opencrypto APIs. - Mark the source buffer for a copyback operation as const in the kernel API. - Use const with input-only buffers in crypto ioctl structures used with /dev/crypto. 319475: Fix some new errors and a warning in cryptotest. - Use a new 'char *key' to allocate storage for keys and assign the pointer to the session2_op 'const char *' members after the key is initialized. - Mark the 'find' variable used in crfind() static so that crfind() doesn't return a pointer to stack garbage. Sponsored by: Chelsio Communications (cherry picked from commit 230aaab2e615703ad509454fe1b16ab8f69b411c)
Diffstat (limited to 'tools')
-rw-r--r--tools/tools/crypto/cryptotest.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/tools/tools/crypto/cryptotest.c b/tools/tools/crypto/cryptotest.c
index bf0f8ee..2b5aa0a 100644
--- a/tools/tools/crypto/cryptotest.c
+++ b/tools/tools/crypto/cryptotest.c
@@ -216,7 +216,7 @@ crlookup(const char *devname)
const char *
crfind(int crid)
{
- struct crypt_find_op find;
+ static struct crypt_find_op find;
bzero(&find, sizeof(find));
find.crid = crid;
@@ -252,7 +252,7 @@ runtest(struct alg *alg, int count, int size, u_long cmd, struct timeval *tv)
{
int i, fd = crget();
struct timeval start, stop, dt;
- char *cleartext, *ciphertext, *originaltext;
+ char *cleartext, *ciphertext, *originaltext, *key;
struct session2_op sop;
struct crypt_op cop;
char iv[EALG_MAX_BLOCK_LEN];
@@ -260,19 +260,21 @@ runtest(struct alg *alg, int count, int size, u_long cmd, struct timeval *tv)
bzero(&sop, sizeof(sop));
if (!alg->ishash) {
sop.keylen = (alg->minkeylen + alg->maxkeylen)/2;
- sop.key = (char *) malloc(sop.keylen);
- if (sop.key == NULL)
+ key = (char *) malloc(sop.keylen);
+ if (key == NULL)
err(1, "malloc (key)");
for (i = 0; i < sop.keylen; i++)
- sop.key[i] = rdigit();
+ key[i] = rdigit();
+ sop.key = key;
sop.cipher = alg->code;
} else {
sop.mackeylen = (alg->minkeylen + alg->maxkeylen)/2;
- sop.mackey = (char *) malloc(sop.mackeylen);
- if (sop.mackey == NULL)
+ key = (char *) malloc(sop.mackeylen);
+ if (key == NULL)
err(1, "malloc (mac)");
for (i = 0; i < sop.mackeylen; i++)
- sop.mackey[i] = rdigit();
+ key[i] = rdigit();
+ sop.mackey = key;
sop.mac = alg->code;
}
sop.crid = crid;
OpenPOWER on IntegriCloud