| Summary: | SIGABRT при передаче неполной строки | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Afanasov Dmitry <ender> |
| Component: | squid-kerberos-ldap-helper | Assignee: | manowar <manowar> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | manowar |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
|
Description
Afanasov Dmitry
2010-05-31 15:27:52 MSD
кажись нашёл, где скотина порылась. в том же файле в функции get_attributes() имеется код:
521 nonascii = 0;
522 for ( jl = 0; (ber_len_t) jl < values[il]->bv_len; jl++ )
523 if ( !isascii( values[il]->bv_val[jl] ) )
524 {
525 nonascii = 1;
526 break;
527 }
528 if ( nonascii )
529 continue;
а у меня ldap запрос как раз первый ответ выдает: CN=lawer-control,OU=ЮÑ\200иÑ\201Ñ\202Ñ\213,<и далее латиница>
приведенный код идентифицирует ответ как nonascii, делает continue, увеличивает индекс и пропускает текущий attr_value[index]. в итоге имеем пустоту в текущем attr_value, который потом пытаемся free.
мало того что бага, так получается ещё и с русским не работает.
Должно быть исправлено, т.к. указанного выше кода в версии 1.2.2-alt1 уже нет. |