Bug 42198 - Ошибка сегментирования при создании пользователя
Summary: Ошибка сегментирования при создании пользователя
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: samba-dc (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-03-21 17:04 MSK by Vera Blagoveschenskaya
Modified: 2022-03-23 12:39 MSK (History)
2 users (show)

See Also:


Attachments
smbpasswd.txt (33.32 KB, text/plain)
2022-03-22 11:59 MSK, Vera Blagoveschenskaya
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vera Blagoveschenskaya 2022-03-21 17:04:57 MSK
samba-client-4.14.12-alt2.x86_64

Стенд: p10 server x86_64

1) Выполнить команду
smbpasswd -a user_samba
2) Ввести пароль 2 раза

Результат: Ошибка сегментирования
Comment 1 Andrey Cherepanov 2022-03-21 17:51:43 MSK
Создайте такого пользователя и запустите с gdb smbpasswd -a user_samba, пожалуйста.

У меня не воспроизводится:
cas ~ # smbpasswd -a cas
New SMB password:
Retype new SMB password:
cas ~ #
Comment 2 Evgeny Sinelnikov 2022-03-22 03:25:07 MSK
Выполняется ли предусловие?
Локальный пользователь, для которого задаётся samba-пароль, должен быть уже создан.

Если утилита "падает" только в том случае когда пользователя не существует, это неприятно, то не критично. Непонятно ещё почему раньше на это не обращали внимание. Или это недавняя регрессия?
Comment 3 Vera Blagoveschenskaya 2022-03-22 11:58:54 MSK
(Ответ для Evgeny Sinelnikov на комментарий #2)
> Выполняется ли предусловие?
> Локальный пользователь, для которого задаётся samba-пароль, должен быть уже
> создан.
> 
> Если утилита "падает" только в том случае когда пользователя не существует,
> это неприятно, то не критично. Непонятно ещё почему раньше на это не
> обращали внимание. Или это недавняя регрессия?

# useradd user_samba
# smbpasswd -a user_samba
New SMB password:
Retype new SMB password:
Ошибка сегментирования

Отмечу, что тест выполнялся на p10 server x86_64 (сервер выступает в роли контроллера домена)
Проверила для p10 workstation x86_64 - ошибки нет.

gdb-лог в аттаче
Comment 4 Vera Blagoveschenskaya 2022-03-22 11:59:15 MSK
Created attachment 10441 [details]
smbpasswd.txt
Comment 5 Andrey Cherepanov 2022-03-23 12:39:33 MSK
Подтверждаю сегфолт на samba-dc из Sisyphus:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff34bb104 in der_free_general_string (str=0x555a0dcb6758) at ../../source4/heimdal/lib/asn1/der_free.c:43
43          free(*str);
(gdb) bt
#0  0x00007ffff34bb104 in der_free_general_string (str=0x555a0dcb6758)
    at ../../source4/heimdal/lib/asn1/der_free.c:43
#1  0x00007ffff34e8470 in free_PrincipalName (data=data@entry=0x5555558576e0)
    at source4/heimdal/lib/asn1/asn1_krb5_asn1.c:962
#2  0x00007ffff34e88c9 in free_Principal (data=0x5555558576e0) at source4/heimdal/lib/asn1/asn1_krb5_asn1.c:1123
#3  0x00007ffff35c2741 in krb5_free_principal (context=<optimized out>, p=0x5555558576e0)
    at ../../source4/heimdal/lib/krb5/principal.c:84
#4  krb5_free_principal (context=<optimized out>, p=0x5555558576e0) at ../../source4/heimdal/lib/krb5/principal.c:80
#5  0x00007ffff3329230 in setup_kerberos_keys (io=0x7fffffffd870)
    at ../../source4/dsdb/samdb/ldb_modules/password_hash.c:734
#6  setup_password_fields (io=0x7fffffffd870) at ../../source4/dsdb/samdb/ldb_modules/password_hash.c:2566
#7  0x00007ffff332bd50 in password_hash_mod_do_mod (ac=ac@entry=0x555556270580)
    at ../../source4/dsdb/samdb/ldb_modules/password_hash.c:4851
#8  0x00007ffff332c568 in get_domain_data_callback (req=<optimized out>, ares=<optimized out>)
    at ../../source4/dsdb/samdb/ldb_modules/password_hash.c:4240
#9  0x00007ffff368027f in ldb_kv_callback (ev=<optimized out>, te=<optimized out>, t=..., 
    private_data=<optimized out>) at ../../ldb_key_value/ldb_kv.c:1995
#10 0x00007ffff6e1d8f9 in tevent_common_invoke_timer_handler (te=te@entry=0x555555969800, current_time=..., 
    removed=removed@entry=0x0) at ../../tevent_timed.c:370
#11 0x00007ffff6e1da9c in tevent_common_loop_timer_delay (ev=ev@entry=0x5555555bab00) at ../../tevent_timed.c:442
#12 0x00007ffff6e1e288 in epoll_event_loop_once (ev=0x5555555bab00, location=<optimized out>)
    at ../../tevent_epoll.c:922
#13 0x00007ffff6e16f47 in std_event_loop_once (ev=0x5555555bab00, location=0x7ffff6640b3d "../../common/ldb.c:653")
    at ../../tevent_standard.c:110
#14 0x00007ffff6e1a3d4 in _tevent_loop_once (ev=ev@entry=0x5555555bab00, 
    location=location@entry=0x7ffff6640b3d "../../common/ldb.c:653") at ../../tevent.c:772
#15 0x00007ffff6639c8b in ldb_wait (handle=0x55555591b870, type=<optimized out>) at ../../common/ldb.c:653
#16 0x00007ffff6683d43 in dsdb_autotransaction_request () from /usr/lib64/samba/libsamdb-common-samba4.so
#17 0x00007ffff6686ec7 in dsdb_modify () from /usr/lib64/samba/libsamdb-common-samba4.so
#18 0x00007ffff7d2053c in ?? () from /usr/lib64/libsamba-passdb.so.0
#19 0x00007ffff7d210a8 in ?? () from /usr/lib64/libsamba-passdb.so.0
#20 0x00007ffff7d09353 in local_password_change () from /usr/lib64/libsamba-passdb.so.0
#21 0x0000555555559679 in ?? ()
#22 0x0000555555557fe7 in main ()