Skip to content

Conversation

metrapoliten
Copy link

@metrapoliten metrapoliten commented Feb 5, 2025

Кроме изменений, представленных в PR, нашёл ещё несколько странных мест, но не совсем представляю, как их исправить, поэтому просто упомяну их здесь.

  • Переменная l никак не изменяется, поэтому if (l>0) всегда true, так же как и первое условие в while.
// src/getopt.c:84-88
	do {
		d = optstring[i], l = 1;
		if (l>0) i+=l; else i++;
	} while (l && d != c);
  • Надо добавить проверку на malloc и memcpy и как-то выйти из функции.
// src/youtubeUnblock.c:617-619
        struct dps_t *dpdt = malloc(sizeof(struct dps_t));
	dpdt->pkt = malloc(data_len);
	memcpy(dpdt->pkt, data, data_len);

@Waujito
Copy link
Owner

Waujito commented Feb 6, 2025

Спасибо! Проверки это важнейшая вещь, про которую легко забыть)
Я еще посмотрю изменения и смёржу.
По поводу getopt не знаю, стоит ли его трогать, так как это по факту код из musl libc, но тут тоже надо смотреть.
Про src/youtubeUnblock.c:617-619 тоже еще напишу

@Waujito
Copy link
Owner

Waujito commented Feb 6, 2025

Так, всё хорошо, со всем согласен. Чекеры для delay_packet_send добавил коммитом.

Про getopt я вспомнил. Там в оригинале есть функционал для символов больше байта (к примеру, русский язык). Тянуть эту поддержку в модуль ядра избыточно, да и она уж точно нигде не пригодится для youtubeUnblock (Даже сайты с русским доменом на низком уровне все кодируются в ASCII). Так что ничего страшного, если этот код упростить и вообще убрать l

@Waujito Waujito merged commit 705da0f into Waujito:main Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants