Solaris 7 5/99 and samba-2.0.5a (PR#19508)
Todd Pfaff
pfaff at edge.cis.McMaster.CA
Mon Aug 9 15:29:31 GMT 1999
thanks, this patch fixes the problem. after applying the patch i rebuilt
samba-2.0.5a on solaris 2.5 and it runs fine now on solaris 7.
On Sat, 7 Aug 1999, Jeremy Allison wrote:
> bob at hobbes.dtcc.edu wrote:
> >
> > this samba was built on a solaris 2.5 system and was running fine on a
> > solaris 7 3/99 system. when i installed the solaris 7 5/99 maintenance
> > update something broke.
> >
> > log.smb:
> >
> > [1999/08/06 11:04:41, 1] smbd/server.c:main(628)
> > smbd version 2.0.5a started.
> > Copyright Andrew Tridgell 1992-1998
> > [1999/08/06 11:36:49, 0] locking/shmem_sysv.c:sysv_shm_open(597)
> > ERROR: root did not create the semaphore
> > [1999/08/06 11:36:49, 0] locking/locking.c:locking_init(174)
> > ERROR: Failed to initialise share modes
>
> Try this fix (it causes Samba to do a lookup on root
> and check the correct gid_t rather than just assuming 0).
>
> Regards,
>
> Jeremy Allison,
> Samba Team.
>
> --- /usr/people/jallison/src/samba-2/samba/source/locking/shmem_sysv.c Wed Jul
> 14 09:40:38 1999
> +++ locking/shmem_sysv.c Thu Jul 29 10:41:15 1999
> @@ -528,6 +528,7 @@
> /*******************************************************************
> open the shared memory
> ******************************************************************/
> +
> struct shmem_ops *sysv_shm_open(int ronly)
> {
> BOOL other_processes;
> @@ -536,6 +537,8 @@
> union semun su;
> int i;
> pid_t pid;
> + struct passwd *root_pwd = sys_getpwuid((uid_t)0);
> + gid_t root_gid = root_pwd ? root_pwd->pw_gid : (gid_t)0;
>
> read_only = ronly;
>
> @@ -593,7 +596,7 @@
> hash_size = sem_ds.sem_nsems-1;
>
> if (!read_only) {
> - if (sem_ds.sem_perm.cuid != 0 || sem_ds.sem_perm.cgid != 0) {
> + if (sem_ds.sem_perm.cuid != 0 || sem_ds.sem_perm.cgid !=
> root_gid) {
> DEBUG(0,("ERROR: root did not create the semaphore\n"));
> return NULL;
> }
> @@ -684,7 +687,7 @@
> }
>
> if (!read_only) {
> - if (shm_ds.shm_perm.cuid != 0 || shm_ds.shm_perm.cgid != 0) {
> + if (shm_ds.shm_perm.cuid != 0 || shm_ds.shm_perm.cgid !=
> root_gid) {
> DEBUG(0,("ERROR: root did not create the shmem\n"));
> global_unlock();
> return NULL;
>
> --
> --------------------------------------------------------
> Buying an operating system without source is like buying
> a self-assembly Space Shuttle with no instructions.
> --------------------------------------------------------
>
--
Todd Pfaff \ Email: pfaff at mcmaster.ca
Computing and Information Services \ Voice: (905) 525-9140 x22920
ABB 132 \ FAX: (905) 528-3773
McMaster University \
Hamilton, Ontario, Canada L8S 4M1 \
More information about the samba
mailing list