Bug 24888 - broke with perl-5.12
Summary: broke with perl-5.12
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: smbldap-tools (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 9913
Blocks:
  Show dependency tree
 
Reported: 2011-01-10 20:15 MSK by Michael Shigorin
Modified: 2011-01-12 11:28 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2011-01-10 20:15:01 MSK
Сломалось с perl-base-5.12.2-alt02 как минимум:

--- 0.9.5-alt2
# /usr/sbin/smbldap-migrate-unix-accounts -v -P ~/passwd 2>&1 | head -n 40
Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 255, <$INFILE> line 1.
Use of uninitialized value within @_ in list assignment at /usr/share/perl5/Net/LDAP.pm line 50, <$INFILE> line 1.
Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 262, <$INFILE> line 1.
Use of uninitialized value in concatenation (.) or string at /usr/sbin/smbldap-migrate-unix-accounts line 262, <$INFILE> line 1.
------------------------------------------------------------------------
dn:uid=username,
[...]
---

(последняя строчка, которая уже кусок LDIF'а, обрывается именно на запятой)

--- 0.9.6-alt1 (с патчем от 0.9.5-alt2, лёг нормально):
# /usr/sbin/smbldap-migrate-unix-accounts -v -u -P ~/passwd 2>&1 | head -n 40
Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 257, <$INFILE> line 1.
Use of uninitialized value within @_ in list assignment at /usr/share/perl5/Net/LDAP.pm line 50, <$INFILE> line 1.
Use of uninitialized value $typeuser in hash element at /usr/sbin/smbldap-migrate-unix-accounts line 264, <$INFILE> line 1.
Use of uninitialized value in concatenation (.) or string at /usr/sbin/smbldap-migrate-unix-accounts line 264, <$INFILE> line 1.
------------------------------------------------------------------------
dn:uid=username,
[...]
---

Если патч оторвать, то 0.9.6 с текущим перлом работает.  Предлагаю оторвать до того, как кто-нить доберётся починить (возможно, перл поумнел и переоптимизировал что-то с этим undef'ом добавленным).
Comment 1 Repository Robot 2011-01-11 22:07:57 MSK
smbldap-tools-0.9.6-alt2 -> sisyphus:

* Mon Jan 10 2011 Michael Shigorin <mike@altlinux> 0.9.6-alt2
- drop patch, breaks with perl-5.12 at the very least (closes: #24888)

* Mon Jan 10 2011 Michael Shigorin <mike@altlinux> 0.9.6-alt1
- 0.9.6
Comment 2 Vladimir Lettiev 2011-01-12 11:28:08 MSK
патч кривоват, при использовании любой из опций -P -S -M может привести к некорректным результатам.

Ошибка в том, что функция get_user_entry() использует переменную $typeuser, значение которой определяется _позже_ вызова этой функции. Т.о. при обработке первой строчки данных используется пустое значение (отсюда warning'и), а каждая следующая строчка использует значение $typeuser вычисленное для предыдущей строки, что может дать, мягко говоря, совершенно неверные результаты.