История изменений
Исправление
iluha16,
(текущая версия)
:
а если к примеру для конфигурации сети должен быть отредактирован некий файл содержащий конфиг в бинарном виде. ты десериализируешь его в C структуру. предположим ПО поддерживает pppoe и прямое подключение в сеть ethernet. таким образом имеем
struct {
int connection_type; // 1 for ethernet, 2 for pppoe
// ethernet specific fields
int ip;
int netmask;
// pppoe specific fields
char *username;
char *password;
};
что помешает тебе без энкапсуляции поставить connection_type = 2 не указав при этом username/password и как следствие сохранить инвалидную информацию в бинарный файл который и отредактировать простым текстовым способом нельзя. как вариант при попытке открыть этот файл для редактирования твоя прожка будет падать в сегфолт потому что будет пытаться прочитать username/password из неинициализированного адреса.
Исходная версия
iluha16,
:
а если к примеру для конфигурации сети должен быть отредактирован некий файл содержащий конфиг в бинарном виде. ты десериализируешь его в C структуру. предположим ПО поддерживает pppoe и прямое подключение в сеть ethernet. таким образом имеем
struct { int connection_type; // 1 for ethernet, 2 for pppoe // ethernet specific fields int ip; int netmask; // pppoe specific fields char *username; char *password; };
что помешает тебе без энкапсуляции поставить connection_type = 2 не указав при этом username/password и как следствие сохранить инвалидную информацию в бинарный файл который и отредактировать простым текстовым способом нельзя. как вариант при попытке открыть этот файл для редактирования твоя прожка будет падать в сегфолт потому что будет пытаться прочитать username/password из неинициализированного адреса.