[PATCH][WIP] Make vfs_acl_xattr use hash of the posix ACL

Christian Ambach ambi at samba.org
Wed Oct 31 07:14:21 MDT 2012


On 10/30/2012 10:15 PM, Jeremy Allison wrote:

> Yep, I can't see any talloc heirarchy error either (and I've been
> looking very closely :-). I can't reproduce Christian's error in
> master (and I've tried using Windows, smbclient and smbcacls).
>
> Christian, did you do a git clean -d -x -f before re-making ?
> I know it's a long shot but I really can't see any errors in
> the current ACL memory hierarchy code.

Just to make sure I didn't forget the git clean -xfd yesterday, I did a
git clean -xfd and recompiled Andrew's fix-acls2 branch again (with
autoconf and -O3).
The valgrind errors (and corrupted SDs on the wire that make Windows not
display the Security tab contents) persist.

==3083== Invalid read of size 4
==3083==    at 0x5ADBD1: se_access_check (access_check.c:233)
==3083==    by 0x5AE0A2: se_file_access_check (access_check.c:307)
==3083==    by 0x28643A: smbd_check_access_rights (open.c:137)
==3083==    by 0x234E6F: dptr_create (dir.c:534)
==3083==    by 0x276CB0: call_trans2findfirst (trans2.c:2499)
==3083==    by 0x27BA20: handle_trans2 (trans2.c:8583)
==3083==    by 0x27D5EF: reply_trans2 (trans2.c:8869)
==3083==    by 0x2A7ED2: switch_message (process.c:1551)
==3083==    by 0x2A995C: process_smb (process.c:1587)
==3083==    by 0x2A9DF7: smbd_server_connection_read_handler 
(process.c:2427)
==3083==    by 0x5A2F05: run_events_poll (events.c:281)
==3083==    by 0x5A3473: s3_event_loop_once (events.c:344)
==3083==  Address 0xf4815a8 is 328 bytes inside a block of size 792 free'd
==3083==    at 0x4C23D72: free (vg_replace_malloc.c:325)
==3083==    by 0x84D5ED: _talloc_free_internal (talloc.c:942)
==3083==    by 0x84B522: _talloc_free (talloc.c:1355)
==3083==    by 0x108F8E94: get_nt_acl_internal (vfs_acl_common.c:673)
==3083==    by 0x108F9EC5: get_nt_acl_common (vfs_acl_common.c:701)
==3083==    by 0x2918FC: smb_vfs_call_get_nt_acl (vfs.c:2183)
==3083==    by 0x28640C: smbd_check_access_rights (open.c:115)
==3083==    by 0x234E6F: dptr_create (dir.c:534)
==3083==    by 0x276CB0: call_trans2findfirst (trans2.c:2499)
==3083==    by 0x27BA20: handle_trans2 (trans2.c:8583)
==3083==    by 0x27D5EF: reply_trans2 (trans2.c:8869)
==3083==    by 0x2A7ED2: switch_message (process.c:1551)


My smb.conf is as minimal as possible:

[global]
netbios name = rhel6
security = ads
realm = VSOFS1.COM
workgroup = VSOFS1

idmap config * : backend = autorid
idmap config * : range = 100000-999999

log level = 10
max log size = 100000

[abc]
path = /share
vfs objects = acl_xattr
read only = no

I am running this on a RHEL6 x86_64 VM and /share is an ext3.

Without the vfs objects line, the Windows client happily displays the
security dialog and the valgrind messages are gone.
So it must have something to do with the acl_xattr module.

Cheers,
Christian



More information about the samba-technical mailing list