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 уже нет. |