Pc-lint Plus Se ◆
She smiled. “Fair enough.”
She pointed PC-lint Plus SE at the flight control module’s core file: nav_sensor.c . pc-lint plus se
for (int i = 0; i < SENSOR_HISTORY; i++) { temp_ptr = &sensor_buffer[(offset + i) % BUFSZ]; calib_ptr = &calib_table[temp_ptr->raw >> 2]; if (temp_ptr->value > 85.0) { *calib_ptr = apply_emergency_curve(temp_ptr->value); // here } } The aliasing was invisible to human eyes and to ordinary linters. But temp_ptr and calib_ptr could, under specific unrolling, point to overlapping memory if offset was maliciously crafted. The write to calib_ptr would then corrupt the next sensor’s buffer, causing a silent overflow. She smiled
Hank sighed. “Try the nuclear option. You know the budget we’re on, but... request a temporary license for PC-lint Plus SE.” But temp_ptr and calib_ptr could, under specific unrolling,
She fixed the loop by adding a restrict qualifier and a bounds check on offset . Recompiled. Ran the hardware-in-the-loop test. Seventeen hours passed. Twenty. Thirty.