Proposal for 32-bit UIDs in SysVIPC

Chris Wing (wingc@engin.umich.edu)
Wed, 10 Nov 1999 21:53:09 -0500 (EST)


The 32-bit UID patches that I've posted over the past 2 days do not make
it fully possible to manipulate SysVIPC objects with 32-bit UIDs/GIDs,
owing to the fact that the ipc_perm structure used to communicate with
user programs uses 16 bits for the UID and GID on some architectures.

I have written a prototype patch which addresses this by adding a new set
of IPC commands which are accepted by msgctl(), semctl(), and shmctl(),
and renaming the current IPC_STAT, IPC_SET, MSG_STAT, SEM_STAT, and
SHM_STAT to IPC_OLDSTAT, IPC_OLDSET, etc.

The patch is available at:

http://www.engin.umich.edu/caen/systems/Linux/code/misc/2.3/19991110b/linux-ipc.patch

and the rest of the patches necessary to actually compile a kernel with it
are located at:

http://www.engin.umich.edu/caen/systems/Linux/code/misc/2.3/19991110b/

Note that this is just a draft; I haven't actually run a kernel with this
patch yet, although it does compile :)

I think that this approach is clean and maintainable.
If anyone is interested in looking it over, I would appreciate any
comments about the approach or suggestions as to how I could improve it.

While I was at it, I also enlarged several fields in the msgid_ds,
semid_ds, and shmid_ds structures, for no particular reason other than the
fact that I had to create new structures because there was no pad space
available. Would it be a good idea to add pad space to these new
structures now to avoid this problem in the future?

Thanks,
Chris Wing
wingc@engin.umich.edu

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/