Bug 37077 - Регрегрессия при назначении групп
Summary: Регрегрессия при назначении групп
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libnss-role (show other bugs)
Version: unstable
Hardware: all Linux
: P3 blocker
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-02 14:09 MSK by Evgeny Sinelnikov
Modified: 2019-08-06 22:18 MSK (History)
4 users (show)

See Also:


Attachments
Memory leaks analyze 001 (1.46 KB, patch)
2019-08-02 19:33 MSK, Evgeny Sinelnikov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeny Sinelnikov 2019-08-02 14:09:29 MSK
При развёртывании стеков с доменом выявлена регрессия.

На старой инсталяции такие пакеты и настройки:

[test@clw2x samba.git.test]$ rpm -q libnss-role
libnss-role-0.3.1-alt1.x86_64
[test@clw2x samba.git.test]$ rpm -qf /usr/sbin/system-auth
alterator-auth-0.40-alt1.x86_64
[test@clw2x samba.git.test]$ cat /etc/role
100:80,22,81,470,19,83,460,71,498,499,14,489,465
455:10
Domain Users:users
Domain Admins:localadmins

А на новой - такие:

[root@clw2 ~]# rpm -q libnss-role
libnss-role-0.4.0-alt1.x86_64
[root@clw2 ~]# rpm -qf /usr/sbin/system-auth
alterator-auth-0.40-alt1.x86_64
[root@clw2 ~]# cat /etc/role
localadmins:root
Domain Users:users
Domain Admins:localadmins

___________________________________

Суть регрессии:

Проблема 1.

[root@clw2 ~]# roleadd users uucp proc cdrom floppy cdwriter audio radio users scanner xgrp vboxusers sambashare camera
Error 156: No such group
[root@clw2 ~]# roleadd users uucp proc cdrom floppy cdwriter audio radio users scanner xgrp vboxusers sambashare
[root@clw2 ~]# getent group camera
camera:x:460:test

[root@clw2 ~]# roleadd users camera
[root@clw2 ~]# rolelst 
localadmins:root
domain users:users
domain admins:localadmins
users:uucp,proc,cdrom,floppy,cdwriter,audio,radio,users,scanner,xgrp,vboxusers,sambashare,camera

Проблема 2.

[root@clw2 ~]# roleadd localadmins wheel
[root@clw2 ~]# rolelst 
localadmins:root,wheel
domain users:users
domain admins:localadmins
users:uucp,proc,cdrom,floppy,cdwriter,audio,radio,users,scanner,xgrp,vboxusers,sambashare,camera
[root@clw2 ~]# roledel -r localadmins
[root@clw2 ~]# rolelst 
domain users:users
domain admins:localadmins
users:uucp,proc,cdrom,floppy,cdwriter,audio,radio,users,scanner,xgrp,vboxusers,sambashare,camera
[root@clw2 ~]# roleadd localadmins wheel
[root@clw2 ~]# rolelst 
domain users:users
domain admins:localadmins
users:uucp,proc,cdrom,floppy,cdwriter,audio,radio,users,scanner,xgrp,vboxusers,sambashare,camera
localadmins:root
Comment 1 Ivan A. Melnikov 2019-08-02 15:58:02 MSK
[root@titan ~]# roleadd users uucp
free(): double free detected in tcache 2
Aborted (core dumped)


вчерашний Сизиф.
Comment 2 Ivan A. Melnikov 2019-08-02 16:03:15 MSK
(In reply to comment #1)
> [root@titan ~]# roleadd users uucp
> free(): double free detected in tcache 2
> Aborted (core dumped)
> 
> 
> вчерашний Сизиф.

Возможно конечно это другой баг (я этот пытался воспроизвести).

Вот вам backtrace:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7df2515 in __GI_abort () at abort.c:79
#2  0x00007ffff7e49668 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff7f521fe "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007ffff7e4fa7a in malloc_printerr (str=str@entry=0x7ffff7f53e60 "free(): double free detected in tcache 2") at malloc.c:5342
#4  0x00007ffff7e514dd in _int_free (av=0x7ffff7f88c40 <main_arena>, p=0x405680, have_lock=<optimized out>) at malloc.c:4195
#5  0x00007ffff7f9124d in librole_ver_free (v=0x405260) at parser.c:100
#6  0x00007ffff7f9128d in librole_graph_free (G=G@entry=0x7fffffffe240) at parser.c:110
#7  0x00000000004011fe in main (argc=3, argv=0x7fffffffe388) at roleadd.c:96
Comment 3 Evgeny Sinelnikov 2019-08-02 19:33:45 MSK
Created attachment 8215 [details]
Memory leaks analyze 001

Ну, это же решето.
Это только первые 10 минут анализа кода на предмет утечек.

Плюс имеется ошибка, которая тоже из-за копирования инициалированного указателя дважды удаляется.
Comment 4 Vitaly Lipatov 2019-08-02 22:29:36 MSK
Я в курсе, код в переписывании, не успел доделать, вот ещё немного и допишу.
Comment 5 Repository Robot 2019-08-06 22:18:47 MSK
libnss-role-0.4.1-alt1 -> sisyphus:

Tue Aug 06 2019 Evgeny Sinelnikov <sin@altlinux> 0.4.1-alt1
- Fix double memory free with crash before writing (Closes: 37077)