Bug 44497 - в curl версии 7.86 сломали механизм no_proxy
Summary: в curl версии 7.86 сломали механизм no_proxy
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: curl (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 major
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-30 15:20 MSK by Владимир Савченко
Modified: 2022-12-28 10:42 MSK (History)
4 users (show)

See Also:


Attachments
патч исправляющий баг (462 bytes, patch)
2022-11-30 15:20 MSK, Владимир Савченко
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Владимир Савченко 2022-11-30 15:20:19 MSK
Created attachment 11993 [details]
патч исправляющий баг

Приветствую всех, нашел багу в curl-е, в версии 7.86 не правильно работает исключение из прокси, если передается несколько значений например: no_proxy=localhost,.mso.ru,.arg.loc, то домена  .mso.ru исключение не срабатывает, если его передать последним, то работает. Проблему нашел, это ошибка в коде, патч прикладываю.
Comment 1 Alexander Makeenkov 2022-11-30 16:27:34 MSK
Здравствуйте.

Опишите, пожалуйста, шаги для воспроизведения ошибки.
Comment 2 Anton Farygin 2022-11-30 17:52:04 MSK
Для информации - в апстриме curl успели этот кусок переписать.
Но шаги для воспроизведения лучше всё равно добавить.
Comment 3 Владимир Савченко 2022-12-01 06:46:22 MSK
Приветствую!
Воспроизведение проблемы:
1.	curl-е, в версии 7.86.0
2.	переменные окружения 
a.	https_proxy=http://proxy.domain.org:8090 
b.	http_proxy=http://proxy.domain.org:8090
c.	no_proxy=localhost,.dmn.loc,.dmn2.ru
3.	без моего фикса не срабатывает исключение для домена «.dmn.loc», но если его поместить в конец списка исключения, то все работает как надо и если всего одно условие в исключениях то же работает. Если прописать хостнейм полностью то так же работает не важно в какой части списка исключений прописан, ну это и понятно т.к. в коде автор функции ошибся с переменными и передал в функцию сравнения переменную содержащую длину имени хоста, а не длину паттерна  сравнения, проблема только для паттернов начинающихся с точки.
4.	Проверяем curl -v -s http://www.dmn.loc, без фикса curl пытается подключится к проксе игнорируя то что домен прописан в исключения.
Comment 4 Владимир Савченко 2022-12-01 06:50:30 MSK
(Ответ для Anton Farygin на комментарий #2)
> Для информации - в апстриме curl успели этот кусок переписать.
> Но шаги для воспроизведения лучше всё равно добавить.

и действительно исправили, опять поторопился :-) с анализом кода )))
Comment 5 Владимир Савченко 2022-12-01 06:52:38 MSK
тогда ждем на P10 обновленный пакет курла, а пока у себя пересобрал пакетик да закинул в репо кастомный.
Comment 6 Anton Farygin 2022-12-01 09:03:00 MSK
да, я тоже новую версию подожду - они часто выходят.

@qa-team - добавьте сценарий в тесты, пожалуйста.
Comment 7 Alexander Makeenkov 2022-12-01 10:28:35 MSK
Ошибку воспроизвёл, в тест-кейсы добавил.
Comment 8 Alexander Makeenkov 2022-12-01 10:31:25 MSK
Воспроизводится в сизифе
Comment 9 Anton Farygin 2022-12-01 11:41:49 MSK
Будет исправлено в новой версии curl
Comment 10 Anton Farygin 2022-12-28 10:42:40 MSK
в Sisyphus исправлено, в p10 едет.