void testChainedCalls() { int *ptr = 0; // expected-note@-1 {{'ptr' initialized to a null pointer value}} passThrough(ptr); // expected-note@-1 {{Passing null pointer value via 1st parameter 'p'}} // expected-note@-2 {{Calling 'passThrough'}} }
void RleCodec::write(unsigned char c) { if ((c >= 0x80) && (c <= 0x8F)) { if ((cmd8n.size()) && (c == cmd8n.back())) { if (run == 256) { writeHelper(true); } cmd8n.push_back(c); run++; } else { writeHelper(false); cmd8n.push_back(c); run = 1; } } else { writeHelper(true); passThrough(c); } }
static void encodePrivateKeyHeader(const CssmData &inBlob, CFDataRef certificate, FVPrivateKeyHeader &outHeader) { CssmClient::CL cl(gGuidAppleX509CL); const CssmData cert(const_cast<UInt8 *>(CFDataGetBytePtr(certificate)), CFDataGetLength(certificate)); CSSM_KEY_PTR key; if (CSSM_RETURN rv = CSSM_CL_CertGetKeyInfo(cl->handle(), &cert, &key)) CssmError::throwMe(rv); Security::CssmClient::CSP fCSP(gGuidAppleCSP); // Set it up so the cl is used to free key and key->KeyData // CssmAutoData _keyData(cl.allocator()); // _keyData.set(CssmData::overlay(key->KeyData)); CssmAutoData _key(cl.allocator()); _key.set(reinterpret_cast<uint8 *>(key), sizeof(*key)); CssmClient::Key cKey(fCSP, *key); /* Given a CSSM_KEY_PTR in any format, obtain the SHA-1 hash of the * associated key blob. * Key is specified in CSSM_CSP_CreatePassThroughContext. * Hash is allocated by the CSP, in the App's memory, and returned * in *outData. */ CssmClient::PassThrough passThrough(fCSP); passThrough.key(key); void *outData; passThrough(CSSM_APPLECSP_KEYDIGEST, NULL, &outData); CssmData *cssmData = reinterpret_cast<CssmData *>(outData); assert(cssmData->Length <= sizeof(outHeader.publicKeyHash)); outHeader.publicKeyHashSize = (uint32_t)cssmData->Length; memcpy(outHeader.publicKeyHash, cssmData->Data, cssmData->Length); fCSP.allocator().free(cssmData->Data); fCSP.allocator().free(cssmData); /* Now encrypt the blob with the public key. */ CssmClient::Encrypt encrypt(fCSP, key->KeyHeader.AlgorithmId); encrypt.key(cKey); CssmData clearBuf(outHeader.encryptedBlob, sizeof(outHeader.encryptedBlob)); CssmAutoData remData(fCSP.allocator()); encrypt.padding(CSSM_PADDING_PKCS1); outHeader.encryptedBlobSize = (uint32_t)encrypt.encrypt(inBlob, clearBuf, remData.get()); if (outHeader.encryptedBlobSize > sizeof(outHeader.encryptedBlob)) secinfo("FDERecovery", "encodePrivateKeyHeader: encrypted blob too big: %d", outHeader.encryptedBlobSize); }