Мой комментарий к статье "Операционная Система на C без знаний C".
Я так понимаю, речь идёт об этом проекте OS. Мдя. Ну что же, автору предстоит узнать ещё много о языке С. Например, что такое выход за границу буфера.
void terminal_write_hex(uint64_t hex_num) {
uint64_t index_buffer = 0;
char buffer[sizeof(uint64_t)];
if (hex_num == 0x0) {
terminal_write("0x0");
return;
}
terminal_write("0x");
while (hex_num > 0) {
uint64_t digit = hex_num % 16;
if (digit >= 10) {
digit = digit - 10;
buffer[index_buffer] = 'A'+digit;
}else {
buffer[index_buffer] = '0' + digit;
}
hex_num = hex_num / 16;
index_buffer++;
}Какой милый баг. Посмотрите на размер буфера: не учитывается, что один байт превращается в два символа. Интересные времена "безопасного ПО" настают. Простите за едкость комментария, но не удержался, увидев проект автора:
Safe Life System
Наш проект — это платформа для обеспечения и сохранения безопасности информации в цифровой среде, а также для развития независимой IT-экосистемы.
Мы создаём комплекс программного обеспечения, ориентированный на защиту данных, открытость технологий и поддержку русскоязычного IT-сообщества.
