diff --git a/cmd/selfserv/selfserv.c b/cmd/selfserv/selfserv.c --- a/cmd/selfserv/selfserv.c +++ b/cmd/selfserv/selfserv.c @@ -2078,13 +2078,13 @@ if (!input || !input->data || input->len == 0 || !output || outputLen == 0) { PR_SetError(SEC_ERROR_INVALID_ARGS, 0); return SECFailure; } - *usedLen = outputLen; - - int ret = uncompress(output, (unsigned long *)usedLen, input->data, input->len); + unsigned long outputLenUL = outputLen; + int ret = uncompress(output, &outputLenUL, input->data, input->len); + *usedLen = outputLenUL; if (ret != Z_OK) { PR_SetError(SEC_ERROR_BAD_DATA, 0); return SECFailure; } @@ -2100,11 +2100,13 @@ } unsigned long maxCompressedLen = compressBound(input->len); SECITEM_AllocItem(NULL, output, maxCompressedLen); - int ret = compress(output->data, (unsigned long *)&output->len, input->data, input->len); + unsigned long outputLenUL = output->len; + int ret = compress(output->data, &outputLenUL, input->data, input->len); + output->len = outputLenUL; if (ret != Z_OK) { PR_SetError(SEC_ERROR_LIBRARY_FAILURE, 0); return SECFailure; } diff --git a/cmd/tstclnt/tstclnt.c b/cmd/tstclnt/tstclnt.c --- a/cmd/tstclnt/tstclnt.c +++ b/cmd/tstclnt/tstclnt.c @@ -1375,11 +1375,13 @@ } unsigned long maxCompressedLen = compressBound(input->len); SECITEM_AllocItem(NULL, output, maxCompressedLen); - int ret = compress(output->data, (unsigned long *)&output->len, input->data, input->len); + unsigned long outputLenUL = output->len; + int ret = compress(output->data, &outputLenUL, input->data, input->len); + output->len = outputLenUL; if (ret != Z_OK) { PR_SetError(SEC_ERROR_LIBRARY_FAILURE, 0); return SECFailure; } @@ -1394,13 +1396,13 @@ if (!input || !input->data || input->len == 0 || !output || outputLen == 0) { PR_SetError(SEC_ERROR_INVALID_ARGS, 0); return SECFailure; } - *usedLen = outputLen; - - int ret = uncompress(output, (unsigned long *)usedLen, input->data, input->len); + unsigned long outputLenUL = outputLen; + int ret = uncompress(output, &outputLenUL, input->data, input->len); + *usedLen = outputLenUL; if (ret != Z_OK) { PR_SetError(SEC_ERROR_BAD_DATA, 0); return SECFailure; }