[PATCH] Master fix for bug #9518 - conn->share_access appears not be be reset between users
Andrew Bartlett
abartlet at samba.org
Tue Jan 8 04:38:40 MST 2013
On Tue, 2013-01-08 at 18:33 +1100, Andrew Bartlett wrote:
> On Tue, 2013-01-08 at 08:09 +0100, Stefan (metze) Metzmacher wrote:
> > Am 06.01.2013 15:13, schrieb Volker Lendecke:
> > > On Fri, Jan 04, 2013 at 04:12:55PM -0800, Jeremy Allison wrote:
> > >> Please review and apply to master if ok. It includes
> > >> Andrew's regression test patch also.
> > >
> > > Looks very well crafted to me. I haven't tested it, but it
> > > looks completely sane. Attached find some cosmetic patches
> > > on top.
> > >
> > > With best regards,
> >
> > Reviewed-by: Stefan Metzmacher <metze at samba.org>
>
> Thanks. All these (Volker's cosmetic patches included) are now on their
> way to autobuild.
Jermey,
I've got bad news sorry.
source3/printing/nt_printing.c:get_correct_cversion() calls
become_user_by_session() which uses UID_FIELD_INVALID.
This means that on sn-devel (but not on my Fedora system!) we segfault:
/home/abartlet/samba-1/bin/smbd: #7 0x00002b8604c74f3e in check_user_ok
(conn=0x1943890, vuid=0,
/home/abartlet/samba-1/bin/smbd: session_info=0x218a990, snum=15)
at ../source3/smbd/uid.c:193
/home/abartlet/samba-1/bin/smbd: i = 0
/home/abartlet/samba-1/bin/smbd: readonly_share = false
/home/abartlet/samba-1/bin/smbd: admin_user = false
/home/abartlet/samba-1/bin/smbd: ent = 0x8
/home/abartlet/samba-1/bin/smbd: share_access = 0
/home/abartlet/samba-1/bin/smbd: status = {v = 39425808}
/home/abartlet/samba-1/bin/smbd: __FUNCTION__ = "check_user_ok"
/home/abartlet/samba-1/bin/smbd: #8 0x00002b8604c75204 in
change_to_user_internal (conn=0x1943890,
/home/abartlet/samba-1/bin/smbd: session_info=0x218a990, vuid=0)
at ../source3/smbd/uid.c:274
/home/abartlet/samba-1/bin/smbd: snum = 15
/home/abartlet/samba-1/bin/smbd: gid = 0
/home/abartlet/samba-1/bin/smbd: uid = 4
/home/abartlet/samba-1/bin/smbd: group_c = 0 '\000'
/home/abartlet/samba-1/bin/smbd: num_groups = 0
/home/abartlet/samba-1/bin/smbd: group_list = 0x0
/home/abartlet/samba-1/bin/smbd: ok = false
/home/abartlet/samba-1/bin/smbd: __FUNCTION__ =
"change_to_user_internal"
/home/abartlet/samba-1/bin/smbd: #9 0x00002b8604c758ac in
change_to_user_by_session (conn=0x1943890,
/home/abartlet/samba-1/bin/smbd: session_info=0x218a990)
at ../source3/smbd/uid.c:390
/home/abartlet/samba-1/bin/smbd: __FUNCTION__ =
"change_to_user_by_session"
/home/abartlet/samba-1/bin/smbd: #10 0x00002b8604c75cb6 in
become_user_by_session (conn=0x1943890,
/home/abartlet/samba-1/bin/smbd: session_info=0x218a990)
at ../source3/smbd/uid.c:544
/home/abartlet/samba-1/bin/smbd: No locals.
/home/abartlet/samba-1/bin/smbd: #11 0x00002b8604bd61b1 in
get_correct_cversion (session_info=0x218a990,
/home/abartlet/samba-1/bin/smbd: architecture=0x2b8604dffb51
"W32X86",
/home/abartlet/samba-1/bin/smbd: driverpath_in=0x27f1f20
"pscript5.dll", perr=0x7fff40a89600)
/home/abartlet/samba-1/bin/smbd:
at ../source3/printing/nt_printing.c:640
/home/abartlet/samba-1/bin/smbd: cversion = -1
/home/abartlet/samba-1/bin/smbd: nt_status = {v = 0}
/home/abartlet/samba-1/bin/smbd: smb_fname = 0x0
/home/abartlet/samba-1/bin/smbd: driverpath = 0x0
/home/abartlet/samba-1/bin/smbd: fsp = 0x0
/home/abartlet/samba-1/bin/smbd: conn = 0x1943890
/home/abartlet/samba-1/bin/smbd: oldcwd = 0x2910620 "/tmp"
/home/abartlet/samba-1/bin/smbd: printdollar = 0x1eba6c0 "print
$"
/home/abartlet/samba-1/bin/smbd: printdollar_snum = 15
/home/abartlet/samba-1/bin/smbd: __FUNCTION__ =
"get_correct_cversion"
This means we need to put back all the ugly UID_FIELD_INVALID stuff,
because we don't want to be doing caches based on a 0 vuid (being the
value the cache is initialised to). (Or find a more elegant solution).
Sorry,
Andrew Bartlett
--
Andrew Bartlett http://samba.org/~abartlet/
Authentication Developer, Samba Team http://samba.org
More information about the samba-technical
mailing list