mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-16 13:59:51 +02:00
[CFI] Remove function pointer casts
Control Flow Integrity [1] indirect call checking verifies that function pointers only call valid functions with a matching type signature. This change eliminates function pointer casts that were causing cfi-icall failures. [1] https://www.chromium.org/developers/testing/control-flow-integrity BUG=chromium:827826 Change-Id: I5db021d06390a6cefd670fdd2f0d34c9e530465e
This commit is contained in:
committed by
James Zern
parent
c909d53182
commit
978eec2507
@ -434,7 +434,9 @@ typedef struct {
|
||||
} SegmentJob;
|
||||
|
||||
// main work call
|
||||
static int DoSegmentsJob(SegmentJob* const job, VP8EncIterator* const it) {
|
||||
static int DoSegmentsJob(void* arg1, void* arg2) {
|
||||
SegmentJob* const job = (SegmentJob*)arg1;
|
||||
VP8EncIterator* const it = (VP8EncIterator*)arg2;
|
||||
int ok = 1;
|
||||
if (!VP8IteratorIsDone(it)) {
|
||||
uint8_t tmp[32 + WEBP_ALIGN_CST];
|
||||
@ -462,7 +464,7 @@ static void InitSegmentJob(VP8Encoder* const enc, SegmentJob* const job,
|
||||
WebPGetWorkerInterface()->Init(&job->worker);
|
||||
job->worker.data1 = job;
|
||||
job->worker.data2 = &job->it;
|
||||
job->worker.hook = (WebPWorkerHook)DoSegmentsJob;
|
||||
job->worker.hook = DoSegmentsJob;
|
||||
VP8IteratorInit(enc, &job->it);
|
||||
VP8IteratorSetRow(&job->it, start_row);
|
||||
VP8IteratorSetCountDown(&job->it, (end_row - start_row) * enc->mb_w_);
|
||||
|
Reference in New Issue
Block a user