Bug 24888 - broke with perl-5.12
: broke with perl-5.12
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/smbldap-tools)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
: 9913
:
  Show dependency tree
 
Reported: 2011-01-10 20:15 by
Modified: 2011-01-12 11:28 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2011-01-10 20:15:01
Сломалось с 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 From 2011-01-11 22:07:57 -------
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 From 2011-01-12 11:28:08 -------
патч кривоват, при использовании любой из опций -P -S -M может привести к
некорректным результатам.

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