mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-18 20:49:28 +00:00
Harvest 176 isolated vuln-vs-fix functions (109 CVEs, 352 training rows) into benchmarks/pairs/vfc with provenance and a JSONL training manifest. Score the slice as an honesty dashboard (ousast pairs --slice vfc); keep the pair gate on the local fixtures only.
56 lines
1.8 KiB
C
56 lines
1.8 KiB
C
/* Provenance: openssl/openssl DTLS_RECORD_LAYER_clear (vuln).
|
|
* repo: openssl/openssl
|
|
* commit: a0c8ec557d9cac078f032d76cdf684fe743eb382
|
|
* parent: a0c8ec557d9cac078f032d76cdf684fe743eb382
|
|
* commit_url: https://github.com/openssl/openssl/commit/1ca5a124b48f1ffe6980ad33724b452fbd62da1e
|
|
* cve: CVE-2026-54874
|
|
* license: Apache-2.0
|
|
* function: DTLS_RECORD_LAYER_clear
|
|
* relpath: ssl/record/rec_layer_d1.c
|
|
*/
|
|
|
|
void DTLS_RECORD_LAYER_clear(RECORD_LAYER *rl)
|
|
{
|
|
DTLS_RECORD_LAYER *d;
|
|
pitem *item = NULL;
|
|
DTLS1_RECORD_DATA *rdata;
|
|
pqueue *unprocessed_rcds;
|
|
pqueue *processed_rcds;
|
|
pqueue *buffered_app_data;
|
|
|
|
d = rl->d;
|
|
|
|
while ((item = pqueue_pop(d->unprocessed_rcds.q)) != NULL) {
|
|
rdata = (DTLS1_RECORD_DATA *)item->data;
|
|
OPENSSL_free(rdata->rbuf.buf);
|
|
OPENSSL_free(item->data);
|
|
pitem_free(item);
|
|
}
|
|
|
|
while ((item = pqueue_pop(d->processed_rcds.q)) != NULL) {
|
|
rdata = (DTLS1_RECORD_DATA *)item->data;
|
|
if (rl->s->options & SSL_OP_CLEANSE_PLAINTEXT)
|
|
OPENSSL_cleanse(rdata->rbuf.buf, rdata->rbuf.len);
|
|
OPENSSL_free(rdata->rbuf.buf);
|
|
OPENSSL_free(item->data);
|
|
pitem_free(item);
|
|
}
|
|
|
|
while ((item = pqueue_pop(d->buffered_app_data.q)) != NULL) {
|
|
rdata = (DTLS1_RECORD_DATA *)item->data;
|
|
if (rl->s->options & SSL_OP_CLEANSE_PLAINTEXT)
|
|
OPENSSL_cleanse(rdata->rbuf.buf, rdata->rbuf.len);
|
|
OPENSSL_free(rdata->rbuf.buf);
|
|
OPENSSL_free(item->data);
|
|
pitem_free(item);
|
|
}
|
|
|
|
unprocessed_rcds = d->unprocessed_rcds.q;
|
|
processed_rcds = d->processed_rcds.q;
|
|
buffered_app_data = d->buffered_app_data.q;
|
|
memset(d, 0, sizeof(*d));
|
|
d->unprocessed_rcds.q = unprocessed_rcds;
|
|
d->processed_rcds.q = processed_rcds;
|
|
d->buffered_app_data.q = buffered_app_data;
|
|
}
|