[PATCH] 2.4.x BSD Process Accounting w/High UID

From: Arthur Corliss
Date: Thu Mar 04 2004 - 13:13:21 EST


Greetings:

The patch only changes two lines of code which redefine the
ac_uid/ac_gid fields as uid_t/gid_t respectively. Fixes accounting for
high uid/gids.

--Arthur Corliss
Bolverk's Lair -- http://arthur.corlissfamily.org/
Digital Mages -- http://www.digitalmages.com/
"Live Free or Die, the Only Way to Live" -- NH State Motto--- linux-2.4.25/include/linux/acct.h 2004-03-04 07:50:49.000000000 -0900
+++ linux/include/linux/acct.h 2004-03-04 09:07:18.000000000 -0900
@@ -38,11 +38,13 @@
{
char ac_flag; /* Accounting Flags */
/*
- * No binary format break with 2.0 - but when we hit 32bit uid we'll
- * have to bite one
+ * The pure linux source defines uid_t & gid_t as u32 by default
+ * on most platforms. This breaks compatibility with older utilities
+ * and account files compiled ith ac_uid/ac_gid as __u16. Unfortunately,
+ * this has to happen if you actually use high uid/gids.
*/
- __u16 ac_uid; /* Accounting Real User ID */
- __u16 ac_gid; /* Accounting Real Group ID */
+ uid_t ac_uid; /* Accounting Real User ID */
+ gid_t ac_gid; /* Accounting Real Group ID */
__u16 ac_tty; /* Accounting Control Terminal */
__u32 ac_btime; /* Accounting Process Creation Time */
comp_t ac_utime; /* Accounting User Time */