FFORGE//RS
← Маршрут

rust / УРОВЕНЬ 5

Пустой C-buffer с null-указателем

ОЦЕНКА50 МИН
01

ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ

Что нужно восстановить

  • Отделять ABI layout от pointer validity и локализовать unsafe boundary

Raw pointer несёт внешние обязательства

FFI descriptor требует согласованного `repr(C)`. `(null, 0)` обрабатывается до создания slice; для ненулевой длины caller гарантирует readable valid memory, после чего Rust копирует bytes во владение.

КОНТРОЛЬНАЯ ТОЧКА

Какие обязанности есть у Rust-wrapper для borrowed C pointer-length pair?

Выберите все подходящие варианты. Ответ засчитывается только при точном совпадении набора.

ISOLATED RUST 1.96
src/lib.rsРЕДАКТИРОВАНИЕ

02 / РЕВЬЮ КОДА

Сделайте код безопасным

Исправьте `copy_from_ffi`: нулевая длина даёт пустой Vec без slice, non-empty null и oversized ввод отклоняются до чтения, valid bytes копируются в Rust-owned memory. Сохраните ABI и safety contract.

Инициализация редактора…
ОБЛАЧНЫЙ SANDBOXсеть выключена · 256 МБ · 12 с
1 / 64 KB
ВЫВОД
Runner ждёт отправки кода.