Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Просто было интересно как такое может быть, на примере.
Ну вот вам пример:
char buf[5];
sprintf(buf, "%0100d", x);
...тоже делает переполнение буфера, но:
sprintf(buf, "%0*d", len, x); уже несколько вкуснее, но опять не факт если влияние на len "снаружи" сильно ограничено или зависит от множества параметров);...);x ограничены алгоритмом сверху);x);Ну и все в совокупности не делает из этой ошибки сразу же "дыру", даже потенциальную, даже в контексте оного единственного приложения (я уж не говорю про собственно реализацию эксплойта, тем более для "множества" приложений).
Magellan же — совсем не такой. Если все еще не понятно — просто поверьте.
Магелланова ошибка: Buffer overrun или кругосветная экспедиция средствами SQLite FTS